2011-01-20 8 views
6

私は、私が変更できないレガシーオブジェクトを含むHibernateマッピングを作成しているクラスを持っているので、Hibernateでうまくいくために必要なidフィールドを持っていません。私は新しいクラスの@Embeddedフィールドとしてレガシーオブジェクトに注釈を付け、レガシーオブジェクトのhbm.xmlファイルを書き、それが埋め込み可能であることに注意したいと思います。これを行う方法はありますか?私が見たオブジェクトを埋め込むための唯一のドキュメントは、XMLを使用するのではなく、オブジェクトに注釈を付けることです。XMLマッピングファイルに対応するHibernate @embeddable注釈?

私は、レガシーオブジェクトを拡張して適切に注釈を付けることができることを認識していますが、これらのケースは頻繁に発生する可能性があるので、避けたいと考えています。

答えて

10

@EmbeddedのXML対応部分は<component>です。5.1.5. Embedded objects (aka components)を参照してください。

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

しかし、それは@Embeddable/@Embeddedペアと同じように動作しません、あなたは、含むクラスの.hbm.xmlにこのような何かをコンポーネントクラスのすべてのプロパティを記述する必要があります

関連する問題