我有一个正在创建Hibernate映射的类,该类包含一个无法修改的旧对象,因此它没有必要的id字段来与Hibernate完美配合。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?我见过的唯一的嵌入对象的文档指的是对对象进行注释,而不是使用XML。
我意识到我可以扩展旧对象并对其进行适当的注释,但是这些情况可能经常发生,因此,我希望尽可能避免这种情况。
的XML对应项@Embedded是<component>,请参阅5.1.5。嵌入式对象(又称组件)。
@Embedded
<component>
但是,它与@Embeddable/ @Embedded对的工作方式不同,您需要.hbm.xml在包含类中描述组件类的所有属性,如下所示:
@Embeddable
.hbm.xml
<class name = "NewClass"> ... <component name = "legacyObject"> ... properties of the legacy class ... </component> </class>