問題我已經超過了如何使用方法的問題,請讓我解釋一下:休眠:多對多連接繼承策略方法
兩個班,學生和家庭作業。學生班有許多家庭作業的清單。家庭作業班有很多學生完成它的清單。
一些示例代碼,以防萬一一個快速的許多有人搜索到大量的實例:
@Entity(name="STUDENT")
@Inheritance(strategy=InheritanceType.JOINED)//Note this join type, no redundancy
public class Student {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ManyToMany(mappedBy="studentList")//Note how this is mapped
private Collection<Homework> homeworkList = new ArrayList<Homework>();
@Entity(name="HOMEWORK")
@Inheritance(strategy=InheritanceType.JOINED)
public class Homework {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ManyToMany
private Collection<Student> studentList = new ArrayList<Student>();
Hibernate的就執行,並使用主鍵到每個家庭作業給學生,反之亦然地圖創建一個表,student_homework 。
我怎麼可能使用Hibernate來保存一個'homeworkCompleted'布爾例如。 這個值不能存在於學生課上,因爲有很多工作,與家庭作業班相同,因爲有很多學生。
一種可能的解決方案是可能手動進入數據庫,創建另一列,每次保存條目時都可以選擇更新完成或稍後再做。
我不禁想起有一個非常簡單的解決方案,即hibernate可以照顧並使一切正常,同時還有一點應用邏輯。
提前許多感謝, 院長
我不太確定如何使處於休眠這項工作,但你可以把一個標誌在你的多對多映射表完成。 (假設它是像studentId一樣,homeworkId你可以很容易地添加一個完整的標誌,也許是一個日期)。我還沒有見過這種在休眠中使用過的構造,但它可以做到這一點。 –
@Daniel Williams謝謝,這是一個主意。雖然一個日期不僅展示了切入時間,而且還有一個切入時間,所以可以讓我啓動並運行。 – Dean