[英]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.