JPA--双向多对多
来源:互联网 发布:西安网络推广公司 编辑:程序博客网 时间:2024/05/02 00:03
JPA双向多对多,两表之间会生成一种关联表。
A双向多对多的维护端有自己根据实际情况而定。在一下的例子中Student是维护端,Teacher为被维护端
Student.java
package com.olay.entity;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;@Entitypublic class Student {private int id;private String name;private Set<Teacher> teacher = new HashSet<Teacher>();public Student(){};public Student(String name){this.name=name;}@Id @GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}@Column(length=10,nullable=false)public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToMany(cascade={CascadeType.REFRESH})@JoinTable(name="student_teacher",joinColumns=@JoinColumn(name="student_id"),inverseJoinColumns=@JoinColumn(name="teacher_id"))public Set<Teacher> getTeacher() {return teacher;}public void setTeacher(Set<Teacher> teacher) {this.teacher = teacher;}}
Teacher.java
package com.olay.entity;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToMany;@Entitypublic class Teacher {private int id;private String name;private Set<Student> student = new HashSet<Student>();public Teacher(){};public Teacher(String name){this.name=name;}@Id@GeneratedValuepublic int getId() {return id;}public void setId(int id) {this.id = id;}@Column(length=10,nullable=false)public String getName() {return name;}public void setName(String name) {this.name = name;}@ManyToMany(cascade={CascadeType.REFRESH},mappedBy="teacher")public Set<Student> getStudent() {return student;}public void setStudent(Set<Student> student) {this.student = student;}}
测试类
package com.olay.entity;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import junit.framework.TestCase;public class ManyToMany extends TestCase {public void test(){EntityManagerFactory emf = Persistence.createEntityManagerFactory("olayjpa");EntityManager em = emf.createEntityManager();em.getTransaction().begin();Teacher teacher = new Teacher("王老师");Student student = new Student("李同学");teacher.getStudent().add(student);student.getTeacher().add(teacher);em.persist(teacher);em.persist(student);em.getTransaction().commit();em.close();emf.close();}}
生成了如下三张表
0 0
- JPA--双向多对多
- JPA多对多双向关联实例
- JPA多对多双向关联
- jpa双向多对多关系
- jpa双向多对多关联关系
- JPA:双向多对多关系
- JPA之JPA中的多对多双向关联
- JPA---双向一对多
- JPA开发总结<五>--多对多双向关联
- jpa 双向一对多,多对一关联关系
- JPA双向一对多和多对一
- JPA 菜鸟教程 7 双向多对多
- JPA映射关联关系-双向多对多
- JPA 一对多双向关联
- jpa之hibernate4.2.4之双向关联之一对一、一对多、多对多
- JPA双向一对多和多对一及自关联实例
- JPA中的多对多双向关联、级联操作、关系维护、延迟加载
- JPA学习笔记(10)——映射双向多对多关联关系
- js call c++
- Android 常用命令整理
- ZeroMQ(java)Socket之Req
- msyql 中文读写utf8编码及连接超时设置
- $(@:_config=)什么意思?
- JPA--双向多对多
- linux解压 tar命令
- 使用MongoDB中Aggregation统计数据
- uva104(好)
- 深入了解Windows句柄到底是什么
- 我的GitHub Page主页
- UI_iOS学习_UITextField_UILabel_UIButton
- zookeeper-3.4.6 安装配置
- 重写字符串类吧