hibernate map member的字段直接没有setter / getter

时间:2012-06-12 00:58:11

标签: java hibernate orm

我有这些简化类型:

public class DataBean extends ZZZZZ {
    public String   name;
}

public class Member extends CCCCC {
    public DataBean m_data;
}

我想直接在m_data内映射nameMember。 我不能在两者之间使用任何类型的继承(已占用!)。

将是理想的

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

有什么想法吗?是否可以使用Hibernate?

目前我收到此错误:

  

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

主要原因是我正在尝试(重新)使用从http服务中获取的数据bean,我真的不想重写所有字段,也不想写一个setter / getter。

1 个答案:

答案 0 :(得分:6)

name属性实际上在DataBean类中。所以,你得到的例外是显而易见的。因为映射适用于Member

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

请在SO:Hibernate @embeddable annotation equivalent for XML mapping file?

中参考此问题的答案

答案还有一个指向页面的链接,该页面解释了嵌入对象的映射方式。

<强>更新

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