首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Hibernate列映射为多对一映射并作为属性

将Hibernate列映射为多对一映射并作为属性
EN

Stack Overflow用户
提问于 2015-11-19 01:44:37
回答 1查看 742关注 0票数 1

在我的DeviceAttributes.hbm.xml文件中,我想做以下工作:

代码语言:javascript
复制
    <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属性并使用它连接两个表吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-19 06:57:33

如果您决定使用ORM和对象,那么为什么仍然希望只映射deviceId而不是device呢?您可以以deviceAttribute.getDevice().getId()的身份在任何时候访问deviceAttribute.getDevice().getId()字段。如果仍然需要映射设备两次,则应该决定使用哪个设备属性编写设备属性,然后在设备字段映射中添加insert="false" update="false"属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33793831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档