jpa双向多对多关联关系
来源:互联网 发布:八爪网络科技 知乎 编辑:程序博客网 时间:2024/04/27 14:18
1.1. 关系维护方
Teacher.java
package com.morris.entity; 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.Id;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany; @Entitypublic class Teacher { @Id @GeneratedValue private Integer id; @Column(name="name",length=50,nullable=false) private String name; @ManyToMany(cascade=CascadeType.REFRESH,fetch=FetchType.LAZY) @JoinTable(name="stu_tea",joinColumns=@JoinColumn(name="stu_id"),inverseJoinColumns=@JoinColumn(name="tea_id")) private Set<Student> students; @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + "]"; } public Teacher() { super(); // TODO Auto-generated constructor stub } public Teacher(String name) { super(); this.name = name; } public Set<Student> getStudents() { return students; } public void setStudents(Set<Student> students) { this.students = students; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
1.2. 关系被维护方
Student.java
package com.morris.entity; 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.Id;import javax.persistence.ManyToMany; @Entitypublic class Student { @Id @GeneratedValue private Integer id; @Column(name="name",nullable=false,length=50) private String name; @ManyToMany(cascade=CascadeType.REFRESH,fetch=FetchType.LAZY,mappedBy="students") private Set<Teacher> teachers; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Student(String name) { super(); this.name = name; } public Set<Teacher> getTeachers() { return teachers; } public void setTeachers(Set<Teacher> teachers) { this.teachers = teachers; } public Student() { super(); // TODO Auto-generated constructor stub } @Override public String toString() { return "Student [id=" + id + ", name=" + name + "]"; } }
1.3. 测试
Many2ManyTest.java
package com.morris.test; import static org.junit.Assert.*; import java.util.HashSet;import java.util.Set; import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence; import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test; import com.morris.entity.Student;import com.morris.entity.Teacher; public class Many2ManyTest { private static EntityManagerFactory entityManagerFactory; private static EntityManager entityManager; @BeforeClass public static void setUpBeforeClass() throws Exception { entityManagerFactory = Persistence.createEntityManagerFactory("jpaDemo"); entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); } @Test public void test() { Teacher teacher = new Teacher("张三"); Student student = new Student("李四"); entityManager.persist(teacher); entityManager.persist(student); Set<Student> students = new HashSet<Student>(); students.add(student); teacher.setStudents(students); } @AfterClass public static void tearDownAfterClass() throws Exception { entityManager.getTransaction().commit(); entityManager.close(); entityManagerFactory.close(); } }
0 0
- jpa双向多对多关联关系
- jpa 双向一对多,多对一关联关系
- JPA映射关联关系-双向多对多
- JPA映射关联关系-双向一对多
- JPA多对多双向关联实例
- JPA多对多双向关联
- JPA的双向一对多和双向一对一关联关系
- jpa双向多对多关系
- JPA:双向多对多关系
- JPA之JPA中的多对多双向关联
- JPA中的多对多双向关联、级联操作、关系维护、延迟加载
- JPA学习笔记(10)——映射双向多对多关联关系
- JPA学习笔记-映射双向多对多的关联关系
- JPA学习笔记(11)——映射双向多对多关联关系
- JPA学习笔记(11)——映射双向多对多关联关系
- JPA学习笔记-映射双向一对多的关联关系
- JPA开发总结<五>--多对多双向关联
- JPA 一对多双向关联
- 壮装最啄总锥自钻驻兹锥坠自桌壮仔子着
- java学习-- 使用正则表达式从网页上提取网站标题
- 钻紫啄足住足自佐籽撰阻着醉赚椎住子走
- 诱导公式
- android L WLAN管理
- jpa双向多对多关联关系
- 技术博客第一天
- 测试sql语句的执行时间
- 自己刷leetcode的第二天1
- Android中Bitmap,byte[],Drawable相互转化
- 做装砖祝诅嘴遵孜谞姿着住邹篆资钻紫赚
- (document)与$(window)的几个常用属性辨析
- 淄专滓罪琢资踪椎最滓昨抓纵子卒专专谞
- eclipse开发C++环境搭建