簡體   English   中英

Hibernate 多對多關系

[英]Hibernate Many to Many relation

我對 Hibernate 多對多關系有疑問。 在項目中有兩個持久化 class 名為 Student 和 Course。 我將兩個類都配置為多對多關系。 這就是為什么,hibernate 創建第三個表 StudentCourse 我在 student.hbm.xml 文件中定義了這個表標簽之間。 當我存儲學生時,它工作正常。換句話說,它將學生信息存儲在學生表中,將學生 ID 和課程 ID 信息存儲在 Student_Course 表中,將課程信息存儲在課程表中。 但是,當我嘗試存儲課程信息時,它只更新課程表而不是 StudentCourse 表。 因此,我嘗試手動添加它們(通過自己編寫 sql 查詢。)如您所知,“插入 StudentCourse (studentId,courseId) values(?,?) 腳本在 Hibernate 中無法正常工作。我嘗試在 Hql 中編寫腳本,但是,我來不及了。我該怎么辦?我真的很困惑。

更新:

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

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

</set>

如何配置這個文件?

存儲學生時它工作正常,因為學生是關系的所有者。 只有關系所有者的更改才會影響連接表的內容。

如果您使用注釋映射它,則需要添加 InverseJoinTable

它看起來像這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM