jpa双向一对多关联映射

表结构

 

Room类

package auth.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name="room") public class Room { private int id; private String name; private Set<Student> students=new HashSet<Student>(); @Id @GeneratedValue(strategy=GenerationType.AUTO) public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToMany(mappedBy="room",cascade=CascadeType.ALL,fetch=FetchType.EAGER) public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } }

 

Student类:

package auth.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name="student") public class Student { private int id; private String name; private int room_id; private Room room; @Id @GeneratedValue(strategy=GenerationType.AUTO) public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name="room_id") public int getRoom_id() { return room_id; } public void setRoom_id(int room_id) { this.room_id = room_id; } @ManyToOne @JoinColumn(name="room_id",insertable=false, updatable=false) public Room getRoom() { return room; } public void setRoom(Room room) { this.room = room; } }

 

测试类:

package auth.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject; import auth.dao.RoomDao; import auth.dao.StudentDao; import auth.model.Room; import auth.model.Student; @Service public class RoomController { @Autowired private RoomDao dao; @Autowired private StudentDao dao1; public void add(){ Room room=new Room(); room.setName("教室3"); dao.save(room); Student s=new Student(); s.setName("小王1"); s.setRoom_id(room.getId());//维护方是多的一方,所以不会主动关联一方的ID dao1.save(s); } public void query1(){ Student student=dao1.findOne(5); String xx=JSONObject.toJSONString(student); System.out.println(xx); } public void query2(){ Room room=dao.findOne(3); String xx=JSONObject.toJSONString(room); System.out.println(xx); } }
 

 

转载于:https://www.cnblogs.com/JAYIT/p/6941658.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值