簡體   English   中英

在多對一映射中將Hibernate列映射為屬性

[英]Map Hibernate Column in Many-To-One Mapping and as a Property

在我的DeviceAttributes.hbm.xml文件中,我想要執行以下操作:

    <property
    name="deviceId"
    type="java.lang.String"
    not-null="true"
    column="DeviceID"
    unique="true"
    length="32">
    <meta attribute="field-description">
        @hibernate.property
        column="DeviceID"
        unique="true"
        length="32"
        not-null="true"
    </meta>
</property>

<many-to-one 
    name="device" 
    class="Device" 
    not-null="false" 
    property-ref="deviceId">
    <meta attribute="field-description">
        @hibernate.many-to-one
        not-null="true"
        @hibernate.column name="DeviceID"
    </meta>
    <column name="DeviceID" />
</many-to-one>

但是我得到了錯誤:

實體的映射中的重復列:DeviceAttributes列:DeviceID(應使用insert =“ false” update =“ false”進行映射)

我知道我收到此錯誤,因為我將“ DeviceID”列映射了兩次; 一次在“屬性”標簽中,一次在“多對一”標簽中。

有沒有一種方法可以將“ DeviceID”列映射到JavaBean屬性並將其用於聯接兩個表?

如果您決定使用ORM和對象,那么為什么仍要僅映射deviceId而不是將device映射為多對一? 您可以隨時作為deviceAttribute.getDevice().getId()訪問deviceId字段。 如果仍然需要兩次映射設備,則應確定將用於寫入設備屬性的設備,然后在設備字段映射之一中添加insert="false" update="false"屬性。

暫無
暫無

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

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