2011-01-20 11 views
6

Ho una classe che sto creando una mappatura Hibernate che contiene un oggetto legacy che non posso modificare, quindi non ha il campo ID necessario per giocare bene con Hibernate. Vorrei annotare l'oggetto legacy come un campo @Embedded della mia nuova classe e scrivere un file hbm.xml per l'oggetto legacy e notare che è embeddable. C'è un modo per fare questo? L'unica documentazione per incorporare oggetti che ho visto si riferisce all'annotazione di oggetti invece di usare XML.Hibernate Equivalente annotazione @embeddable per il file di mapping XML?

mi rendo conto che ho potuto estendere l'oggetto legacy e annotare in modo appropriato, ma questi casi potrebbe verificarsi frequentemente così vorrei evitare che, se possibile.

risposta

10

La controparte XML di @Embedded è <component>, vedere 5.1.5. Embedded objects (aka components).

Tuttavia, non funziona allo stesso modo come la coppia @Embeddable/@Embedded, è necessario per descrivere tutte le proprietà della classe componente .hbm.xml della classe che contiene, qualcosa di simile:

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