8

I have a class that I am creating a Hibernate mapping which contains a legacy object that I can't modify, so it doesn't have the necessary id field to play nicely with Hibernate. I would like to annotate the legacy object as an @Embedded field of my new class and write an hbm.xml file for the legacy object and note that it is embeddable. Is there a way to do this? The only documentation for embedding objects I've seen refers to annotating objects instead of using XML.

I realize that I could extend the legacy object and annotate it appropriately, but these case might occur frequently so I'd like to avoid that if possible.

1 Answer 1

15

The XML counterpart of @Embedded is <component>, see 5.1.5. Embedded objects (aka components).

However, it doesn't work the same way as the @Embeddable/@Embedded pair, you need to describe all properties of the component class in .hbm.xml of the containing class, something like this:

<class name = "NewClass">
    ...
    <component name = "legacyObject">
        ... properties of the legacy class ...
    </component>
</class>
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.