gpt4 book ai didi

java - 在多对一映射中映射 Hibernate 列并作为属性

转载 作者:行者123 更新时间:2023-11-30 03:09:59 27 4
gpt4 key购买 nike

在我的 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>

但我收到错误:

Repeated column in mapping for entity: DeviceAttributes column: DeviceID (should be mapped with insert="false" update="false")

我知道我收到此错误是因为我将“DeviceID”列映射了两次;一次在“属性”标签中,一次在“多对一”标签中。

有没有办法可以将“DeviceID”列映射到 JavaBean 属性并使用它来连接两个表?

最佳答案

如果您决定使用 ORM 和对象,那么为什么您仍然想将 deviceId 而不是 device 映射为多对一?您可以随时通过 deviceAttribute.getDevice().getId() 访问 deviceId 字段。如果您仍需要两次映射设备,则应决定使用哪一个来写入设备属性,然后在其中一个设备字段映射中添加 insert="false"update="false" 属性。

关于java - 在多对一映射中映射 Hibernate 列并作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com