歧視假如我有實體模型下面的情況和使用Hibernate 3.6:休眠如何連接子類
Person
|__ Student
|__ SchoolBoy
|__ CollegeStudent
我在我的數據庫中的表是tperson和tstudent。由於我使用Hibernate映射文件,我將它聲明如下到我一個人的實體定義:
<joined-subclass name="Student" table="tstudent">
<key column="id_person" />
</joined-subclass>
被男生類似CollegeStudent,我想用同桌的兩個(tstudent),它具有學生類型鑑別器列,而我保持這兩個類。我的問題是,一旦你進入一個聯合子類,Hibernate似乎不允許鑑別器列。
有沒有解決方法?
UPDATE
這就是我現在所擁有的:
<class name="Person">
<id name="Id" column="id" type="integer">
<generator class="increment" />
</id>
<joined-subclass name="Student" table="tstudent">
<key column="id_person" />
<joined-subclass name="SchoolBoy" table="tschoolboy">
<key column="id_person" />
</joined-subclass>
<joined-subclass name="CollegeStudent" table="tcollegestudent">
<key column="id_person" />
</joined-subclass>
</joined-subclass>
</class>
這就是我想在映射連接的一部分內容:
<joined-subclass name="Student" table="tstudent">
<key column="id_person" />
<discriminator column="student_type" />
<subclass name="SchoolBoy" discriminator-value="SCHOOL_BOY" />
<subclass name="CollegeStudent" discriminator-value="COLLEGE_STUDENT" />
</joined-subclass>
請分享完全映射 – WeMakeSoftware
我稍後會跟進,當我有時間去看看但我通過在人與學生之間交換繼承來解決這個問題 - 在這種情況下,學生只是一個人的角色。 – mabi
更新了我的映射文件的更多細節。 @mabi如果你有解決方案,如果你發佈了一些基於我的代碼的例子,我將不勝感激。 –