2011-01-20 41 views
6

Tôi có một lớp mà tôi đang tạo một bản đồ Hibernate có chứa một đối tượng kế thừa mà tôi không thể sửa đổi, vì vậy nó không có trường id cần thiết để phát độc đáo với Hibernate. Tôi muốn chú thích đối tượng kế thừa là một trường @Embedded của lớp mới của tôi và viết một tệp hbm.xml cho đối tượng kế thừa và lưu ý rằng nó có thể nhúng được. Có cách nào để làm việc này không? Tài liệu duy nhất cho việc nhúng các đối tượng mà tôi đã thấy là đề cập đến các đối tượng chú thích thay vì sử dụng XML.Hibernate @embeddable chú thích tương đương với tệp ánh xạ XML?

Tôi nhận thấy rằng tôi có thể mở rộng đối tượng cũ và chú thích nó một cách thích hợp, nhưng trường hợp này có thể xảy ra thường xuyên vì vậy tôi muốn tránh điều đó nếu có thể.

Trả lời

10

Đối tác XML của @Embedded<component>, xem 5.1.5. Embedded objects (aka components).

Tuy nhiên, nó không làm việc theo cách tương tự như các cặp @Embeddable/@Embedded, bạn cần phải mô tả tất cả các thuộc tính của lớp thành phần trong .hbm.xml của lớp chứa một cái gì đó như thế này:

<class name = "NewClass"> 
    ... 
    <component name = "legacyObject"> 
     ... properties of the legacy class ... 
    </component> 
</class> 
Các vấn đề liên quan