1
我有3個表格:Band,BandGenre和Genre。休眠 - 使用Jointable加入表格
現在,我得到Band加入BandGenre,BandGenre加入風格。這似乎有點多。我讀過各種地方(包括這裏),Hibernate可以找出一個連接表,但我無法弄清楚如何去做。
因此,這裏有我的hbm.xml文件:
Band.hbm.xml
<class name="com.myProject.hibernate.Band" table="Band">
<id name="bandid">
<generator class="increment"/>
</id>
<property name="name"/>
<set name="bandGenres" lazy="false">
<key column="bandid"/>
<one-to-many class="com.myProject.hibernate.BandGenre"/>
</set>
</class>
BandGenre.hbm.xml(在jointable)
<class name="com.myProject.hibernate.BandGenre" table="BandGenre">
<id name="bandgenreid">
<generator class="increment"/>
</id>
<property name="bandid"/>
<property name="genreid"/>
<one-to-one name="genre" class="com.myProject.hibernate.Genre">
<!-- the <formula> gets Hibernate to join Genre on BandGenre.genreid (rather than BandGenre.bandgenreid) -->
<formula>genreid</formula>
</one-to-one>
</class>
Genre.hbm.xml
<class name="com.myProject.hibernate.Genre" table="Genre">
<id name="genreid">
<generator class="increment"/>
</id>
<property name="parentid"/>
<property name="name"/>
</class>
我該怎麼做才能讓我的寶貝nd直接加入流派(最好是我可以通過parentid訂購)?
使用你的代碼我得到一個錯誤:「無法從資源com/bandbrokers/hibernate/Band.hbm.xml解析映射文檔」 - 必須爲元素類型「一對多」聲明「屬性」列「 「。 當然,我有「列」屬性設置就像你的代碼。 – laughingbovine
我正在使用Hibernate 3.2,現在升級到3.6.5.Final並仍然收到相同的錯誤。 – laughingbovine
我的不好。如果一個樂隊真的只能擁有一個流派(而不是多個流派),那麼你必須有一個「多對多」的'unique = true'。答覆修改。 –