一尘不染

Hibernate @embeddable注释是否等效于XML映射文件?

hibernate

我有一个正在创建Hibernate映射的类,该类包含一个无法修改的旧对象,因此它没有必要的id字段来与Hibernate完美配合。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?我见过的唯一的嵌入对象的文档指的是对对象进行注释,而不是使用XML。

我意识到我可以扩展旧对象并对其进行适当的注释,但是这些情况可能经常发生,因此,我希望尽可能避免这种情况。


阅读 219

收藏
2020-06-20

共1个答案

一尘不染

的XML对应项@Embedded<component>,请参阅5.1.5。嵌入式对象(又称组件)

但是,它与@Embeddable/ @Embedded对的工作方式不同,您需要.hbm.xml在包含类中描述组件类的所有属性,如下所示:

<class name = "NewClass">
    ...
    <component name = "legacyObject">
        ... properties of the legacy class ...
    </component>
</class>
2020-06-20