2011-01-20 43 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>