繁体   English   中英

无需设置器/获取器即可直接休眠地图成员的字段

[英]hibernate map member's field directly without setter/getter

我有以下简化类型:

public class DataBean extends ZZZZZ {
    public String   name;
}

public class Member extends CCCCC {
    public DataBean m_data;
}

我想映射m_data 直接在Member name 我不能在两者之间使用任何形式的继承(已被占用!)。

将是理想的

<property name="m_data.name" column="name" type="string" access="field" />

任何想法? Hibernate有可能吗?

目前,我收到此错误:

org.hibernate.PropertyNotFoundException:在com.example.Member上找不到字段[m_data.name]

主要原因是我试图(重新)使用从http服务获取的数据bean,而且我真的不想重写所有字段,也不想编写setter / getter。

name属性实际上在DataBean类中。 因此,您得到的异常是显而易见的。 因为映射是针对Member

DataBean嵌入在Member并且要映射嵌入类中的字段,您必须使用<component>元素。

请在SO中参考此问题的答案: Hibernate @embeddable注释是否等效于XML映射文件?

答案还有指向该页面的链接,该页面解释了哪些嵌入式对象是如何映射它们的。

更新:

<component
        name="m_data"
        class="com.example.DemoBean"
        access="field">
    <property name="name" column="NAME" type="string" access="field" />
</component>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM