在我的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属性并使用它连接两个表吗?
发布于 2015-11-19 06:57:33
如果您决定使用ORM和对象,那么为什么仍然希望只映射deviceId而不是device呢?您可以以deviceAttribute.getDevice().getId()的身份在任何时候访问deviceAttribute.getDevice().getId()字段。如果仍然需要映射设备两次,则应该决定使用哪个设备属性编写设备属性,然后在设备字段映射中添加insert="false" update="false"属性。
https://stackoverflow.com/questions/33793831
复制相似问题