Hibernate很多很多关系

时间:2011-04-30 22:15:56

标签: java hibernate many-to-many

我对Hibernate有很多很多关系的问题。在项目中有两个持久化类,名为Student和Course。我配置了两个具有多对多关系的类。这就是为什么,hibernate创建第三个表StudentCourse,我在student.hbm.xml文件中定义了这个表之间的标签。当我存储学生时,它工作正常。换句话说,它将Student信息存储在Student表中,studentId和courseId信息存储在Student_Course表中,课程信息存储在课程表中。但是,当我尝试存储课程信息时,它只更新课程表而不是StudentCourse表。因此,我尝试手动添加它们(通过自己编写sql查询。)如您所知,“插入StudentCourse(studentId,courseId)值(?,?)脚本在Hibernate中无法正常工作。我试图在Hql中编写脚本但是,我无法做到。我该怎么办?我真的很困惑。

更新

我使用映射文件。我将student.hbm.xml文件配置如下;

<set name="courses" table="StudentCourse" cascade="all">
        <key column="studentId" />
        <many-to-many class="Course" column="courseId" /> 

</set>

如何配置此文件?

2 个答案:

答案 0 :(得分:0)

如果您使用注释对其进行映射,则需要添加InverseJoinTable

它看起来像这样:

@ManyToMany
@JoinTable(
name = “studentid”,
joinColumns = { @JoinColumn(name = “studentid”) },
inverseJoinColumns = { @JoinColumn(name = “courseid”) }
)

答案 1 :(得分:0)

当您存储学生时,它可以正常工作,因为学生是该关系的所有者。只有关系所有者的更改才会影响连接表的内容。

相关问题