簡體   English   中英

Hibernate一對一映射xml(多對一)

[英]Hibernate mapping xml one-to-one (many-to-one)

我正在嘗試映射具有一對一關系的兩個類之間的關系。 在互聯網上查找后,似乎人們更喜歡使用多對一映射。

例如,有一個類Order和一個Bill。 Bill持有發票的FK。

這是我對比爾的映射:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Mar 21, 2016 10:46:20 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="domain.Bill" table="BILL">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="native" />
        </id>

        <many-to-one name="order" class="domain.Order" column="ORDER_ID" unique="true" not-null="true"/>
    </class>
</hibernate-mapping>

如您在上方所見,在我的Bill映射中,我可以指定Fk到訂單的列,但是由於Order沒有Fk到Bill,我應該在我的映射中輸入什么?

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Mar 21, 2016 10:46:20 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="domain.Order" table="ORDER">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="native" />
        </id>

        <many-to-one name="bill" class="domain.Bill" ???? fetch="select"/>

    </class>
</hibernate-mapping>

您應該嘗試按原樣進行映射:一對一。

我知道為什么人們會推薦多對一的唯一原因是因為一對一關聯的反面存在延遲加載問題。 然后,您可能希望在反面建立一個假的一對多關聯(畢竟,這是多對一的唯一邏輯反面)。

但是,請查看此答案的其他替代方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM