首页 > 代码库 > Hibernate 多对多映射
Hibernate 多对多映射
package com.entity.manytomany;import java.util.List;import javax.persistence.Entity;import javax.persistence.JoinColumn;import javax.persistence.JoinTable;import javax.persistence.ManyToMany;import com.entity.BaseEntity;@Entitypublic class Student extends BaseEntity{ private String name; @ManyToMany //学生是不稳定的一方 所以由学生来维护 @JoinTable(name="student_course", joinColumns=@JoinColumn(name="s_id"), inverseJoinColumns=@JoinColumn(name="c_id")) //关联表的表名 //关联当前表的主键 //关联对方表的主键 ()内的name即关联表内的字段名 可以自己自由设计 private List<Course> courses; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Course> getCourses() { return courses; } public void setCourses(List<Course> courses) { this.courses = courses; } }
student.java
package com.entity.manytomany;import java.util.List;import javax.persistence.Entity;import javax.persistence.ManyToMany;import com.entity.BaseEntity;@Entitypublic class Course extends BaseEntity{ private String name; @ManyToMany(mappedBy ="courses") //被学生类的courses对象维护 private List<Student> students; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
Course.java
package com;import java.util.ArrayList;import java.util.List;import org.hibernate.Session;import org.hibernate.Transaction;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.entity.manytomany.Course;import com.entity.manytomany.Student;public class TestManyToMany { private Session s; private Transaction tran;@Beforepublic void before(){ s=HibernateUtils.getSession(); tran=s.beginTransaction(); }public void manytomany(){ Course c1=new Course(); Course c2=new Course(); Course c3=new Course(); Student stu1=new Student(); Student stu2=new Student(); Student stu3=new Student(); stu1.setName("zhangsan"); stu2.setName("lisi"); stu3.setName("wangwu"); c1.setName("java"); c2.setName("oracle"); c3.setName("html"); //新建对象 List<Course> courses =new ArrayList<Course>();//建立了一个课程集合 List<Course> courses1 =new ArrayList<Course>(); courses1.add(c2); courses1.add(c3); courses.add(c1); courses.add(c2); courses.add(c3); //向集合中插入要选的课程 stu1.setCourses(courses); stu2.setCourses(courses); stu3.setCourses(courses1); //建立关联 将课程集合set到学生的课程属性中 即学生选择了集合中所有的课程 s.save(c1); s.save(c2); s.save(c3); s.save(stu1); s.save(stu2); s.save(stu3);} @Testpublic void manytomanyquery(){ Course c=(Course)s.get(Course.class, 1); for(Student s:c.getStudents()){ System.out.println(c.getName()+"-------选这门课的学生"+s.getName()); } Course c1=(Course)s.get(Course.class, 2); for(Student s:c1.getStudents()){ System.out.println(c1.getName()+"-------选这门课的学生"+s.getName()); } Course c2=(Course)s.get(Course.class, 3); for(Student s:c2.getStudents()){ System.out.println(c1.getName()+"-------选这门课的学生"+s.getName()); }}@Afterpublic void after(){ tran.commit(); s.close();}}
testmanytomany.java
Hibernate 多对多映射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。