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);
	}
} jpa双向一对多关联映射的更多相关文章
- jpa单向一对多关联映射
		如果在一的@OneToMany有@manyToOne则是双向一对多关联,如果在多的那面没有@manyToOne关联则是单向一对多关联 class和student是一对多的关系 表结构 student ... 
- (Hibernate进阶)Hibernate映射——一对多关联映射(七)
		一对多关联映射 映射原理 一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端.关联关系都是由多端维护,只是在写映射时发生了变化. 多对一和一对多的区别 多对一和 ... 
- 【SSH系列】Hibernate映射 -- 一对多关联映射
		映射原理 一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个 ... 
- Hibernate一对多关联映射的配置及其级联删除问题
		首先举一个简单的一对多双向关联的配置: 一的一端:QuestionType类 package com.exam.entity; import java.util.Set; public class Q ... 
- hihernate一对多关联映射
		hihernate一对多关联映射 一对多关联映射利用了多对一关联映射原理 多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一 一对多关联映射:在多的一端加入一个外键指向一的一端 ... 
- 【SSH进阶之路】Hibernate映射——一对多关联映射(七)
		上上篇博文[SSH进阶之路]Hibernate映射——一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份 ... 
- hibernate一对多关联映射
		一对多关联映射 映射原理 一对多关联映射和多对一关联映射的映射原理是一致的,都是在多的一端加入一个外键,指向一的一端.关联关系都是由多端维护,只是在写映射时发生了变化. 多对一和一对多的区别 多对一和 ... 
- 014 一对多关联映射 单向(one-to-many)
		在对象模型中,一对多的关联关系,使用集合来表示. 实例场景:班级对学生:Classes(班级)和Student(学生)之间是一对多的关系. 多对一.一对多的区别: 多对一关联映射:在多的端加入一个外键 ... 
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
		http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ... 
随机推荐
- PHP拿到别人项目如何修改为自己
			以下为借助google翻译的,个人润色了一下,官方版里面感觉有很多问题,我这里有我个人修改大部分问题的版本,包括翻译完善,有需要的可以联系我:qyj8411@163.com 1. 在您网站的根目录创建 ... 
- unity3d的uGUI基本操作
			uGUI可以免去用户自行创建控件的烦恼,比如button.下面是一个实例: 1.create>UI>Button,如下图所示 新建完成后会出现Canvas和EventSystem,如下图所 ... 
- tomcat 工作原理简析
			https://github.com/HappyTomas/another-tutorial-about-java-web/blob/master/00-08.md 在00-02.理解HTTP中给出了 ... 
- CentOS6X安装PHP5.5
			CentOS6.x默认的php版本是php5.3,已经过时喽,现在最新的稳定版是5.5.38. 安装方法: 1.先下载2个源 rpm -Uvh https://dl.fedoraproject.org ... 
- makefile之调试信息
			makefile 调试 1. 添加调试信息 执行到error时会中断,warning不中断makefile的执行, info不打印当前makefile名和行号. a.$(warning "s ... 
- js----Navigator对象,查看浏览器信息,Screen对象,查看屏幕信息
			Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ... 
- c# 遇到的问题,求解?
			c# cannot evaluate expression because the code of the current method is optimized. 
- 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL
			我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示: <?php try { //$pdo = new pdo("mysql:host=主机;port=端口;dbname= ... 
- dubbo入门使用
			主要参考dubbo官网demo 此处采用zookeeper注册中心进行服务协调管理 真个项目结构如下所示: dcommon : 主要用于定义服务接口, 为dconsumer,dprovider所依赖 ... 
- kubernetes和calico集成
			硬件环境: 三台虚拟机: 192.168.99.129 master(kube-apiserver.kube-controller-manager.kube-proxy.kube-scheduler. ... 
