一對一的關係使用主鍵關聯
在該關聯一個一對一的關係發生在一個實體與另一個實體中的一個事件有關。
這裏是鏈接,例如: primary key association
一對一的關係,使用外鍵關聯
在同樣的例子做了以下變化:
在StockDetail.java
private Integer stockDetailsId;
//with setter and getter
//remove stockId and it's setter and getter
in stock.hbm.xml
<id name="stockId" type="java.lang.Integer">
<column name="STOCK_ID" />
<generator class="assigned" />
</id>
在StockDetail.hbm.xml
<id name="stockDetailsId" type="java.lang.Integer">
<column name="STOCK_DETAILS_ID" />
<generator class="assigned"/>
</id>
<many-to-one name="stock"
class="com.test.common.Stock" column="STOCK_ID" />
在hibernate.cfg
。xml
//this is optional property if you want to create database table's according to your hbm file's.
<property name="hibernate.hbm2ddl.auto">create</property>
首先感謝您的回覆,我明白了兩個優點。但我的第二個問題,我不希望有一個雙向的關係,只是用戶< - 周邊方向,因爲(我指的是Hibernate文檔,我不知道註釋相當不錯,在XML映射)雙向使我不得不添加一列到用戶表,但我不想觸摸用戶表 –
雙向關聯不會更改模式的任何內容。如果您希望外圍表包含連接列而不是用戶表,那麼只需執行該操作即可。 –