3
DB Table REQUEST:
{
primary key REQUEST_ID,
String REQUEST_DETAILS
}
DB Table INVALID_REQUEST_DETAILS{
(foreign key, primary key) fk_req_id references REQUEST.REQUEST_ID,
String INVALID_COMMENTS,
String APPROVER_NAME
}
因此,你可以看到有一個請求INVALID_REQUEST_DETAILS。由於某些我不明白的原因,我聽說Hibernate把它映射爲多對一的關係。我有以下代碼爲我的.hbm.xml文件:休眠外鍵是主鍵
<hibernate-mapping>
<class name="InvalidRequestDetails" table="INVALID_REQUEST_DETAILS">
<id name="id" column="fk_req_id">
<generator class="foreign">
<param name="property">request</param>
</generator>
</id>
... (other column mappings omitted) ...
<many-to-one name="request" class="Request" unique="true" not-null="true" />
</class>
</hibernate-mapping>
請不要把我同「閱讀Hibernate文檔」除非您還提供了一些解釋,它包含的概念非常稀疏的解釋,我有已經閱讀過。我遇到的問題是我的映射文件顯然是錯誤的,因爲我無法在我的表中插入任何記錄。
問題:
- 我怎樣才能解決我的.hbm.xml文件?爲什麼?
- 如上所述,如果我具有邏輯上的一對一關係,爲什麼需要多對一的標籤?這裏的多對一和一對一之間有什麼區別?你什麼時候用哪個?如果我的外鍵不是主鍵,會有什麼改變嗎?