2011-01-20 77 views
6

我有一个类,我正在创建一个Hibernate映射,其中包含一个遗留的对象,我不能修改,所以它没有必要的ID字段与Hibernate很好地发挥。我想将旧对象注释为新类的@Embedded字段,并为旧对象编写一个hbm.xml文件,并注意它是可嵌入的。有没有办法做到这一点?用于嵌入对象的唯一文档是指注释对象而不是使用XML。Hibernate @embeddable注释等价于XML映射文件吗?

我意识到我可以扩展遗留对象并对其进行适当的注释,但这些情况可能会频繁发生,所以如果可能,我想避免这种情况。

回答

10

@Embedded的XML对应部分是<component>,参见5.1.5. Embedded objects (aka components)

但是,这是行不通的相同的方式@Embeddable/@Embedded对,你需要描述包含类,像这样的.hbm.xml组件类的所有属性:

<class name = "NewClass"> 
    ... 
    <component name = "legacyObject"> 
     ... properties of the legacy class ... 
    </component> 
</class>