java Hibernate双向多对多实现
我对hibernate还不熟悉,我想在hibernate中实现类似的东西。为了做到这一点,我在设置xml映射文件时遇到了问题。如果有人能帮助我,这将是非常好的,因为这只是我正在尝试做的概念证明,我有很多复杂的事情要做。谢谢
public class Course implements java.io.Serializable
{
private long courseId;
private String courseName;
private Set <Student> Stu = new HashSet <Student>();
}
public class Student implements java.io.Serializable
{
private long studentId;
private String studentName;
private Set<Course> courses = new HashSet<Course>();
}
但在数据库中,我希望创建3个表 学生、课程和学生课程
Student----->StudentCourse<------Course
StudentId StudentId CourseId
CourseId
我想要的是当我
Course C1=(Course)session.get(Course.class,CourseId)
我得到了指定的课程,通过这样做
Set <Student> StudentsEnrolled=C1.getStu();
我让所有学生都报名参加那门课程
相似地 当我这么做的时候
Student S1=(Student)session.get(Student.class,StudentId)
通过这样做,我得到了指定的学生
Set <Course> CoursesEnrolled=S1.getCourses();
我得到指定学生所学的所有课程
# 1 楼答案
您所寻找的与此处所述的示例非常相似: http://technicalmumbojumbo.wordpress.com/2007/09/25/investigating-hibernate-associations-many-to-many/
它从单向关系开始,最后定义了双向关系的映射
希望这有帮助,
八伏
=====================================
不要忘记你必须决定哪个实体是这种关系的所有者:学生还是课程。 一旦确定了这一点,“owned”实体的Hibernate映射需要将“inverse”标志设置为true
如果您在本文末尾检查Phone实体的Hibernate映射,那么上面的链接中就是这样描述的