Một số người, kể cả tôi, đang vật lộn với việc sáp nhập các thực thể từ các mô-đun khác nhau (đặc biệt là với JavaSE, ví dụ: JPA 2.0: Adding entity classes to PersistenceUnit *from different jar* automatically). Dựa trên các câu trả lời không có cách trực tiếp dễ dàng để làm điều đó. Một trong những giải pháp là liệt kê tất cả các lớp từ tất cả các lọ trong tệp đơn vị lưu giữ duy nhất, nhưng điều đó không thực sự thanh lịch. Tôi có thể đã vô tình tìm thấy một cách khác. Nói chung, tất cả các lớp thực thể của tôi được ánh xạ bằng cách sử dụng các chú thích . Đối với các giải pháp: persistence.xml
có thể bao gồm nhiều file mapping XML, ví dụ:Nhiều lọ, giải pháp đơn vị bền vững duy nhất?
main.jar META-INF/persistence.xml:
<persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/order-mappings.xml</mapping-file>
<mapping-file>META-INF/customer-mappings.xml</mapping-file>
</persistence-unit>
Các tập tin bản đồ có thể được đặt trong lọ khác nhau. Những gì tôi nhận thấy là chúng có thể chứa các yếu tố <entity>
mà không cần bất kỳ thuộc tính, ví dụ:
order.jar META-INF/lệnh mappings.xml
<entity-mappings>
<entity class="com.company.Order"></entity>
</entity-mappings>
Thậm chí nếu các tập tin bản đồ doesn 't bản đồ bất kỳ thuộc tính các chú thích trong lớp Java được đưa vào tài khoản anyway và tất cả mọi thứ dường như làm việc tốt! Điều đó có nghĩa là có thể dễ dàng bao gồm các thực thể từ nhiều lọ vào một đơn vị duy trì liên tục chỉ bằng cách bao gồm các tệp ánh xạ XML từ các JAR cụ thể.
Câu hỏi của tôi là: đây có phải là cách sử dụng tệp ánh xạ JPA được phép hay chỉ là tác dụng phụ của nhà cung cấp kiên trì của tôi (Hibernate)?
xin lỗi tôi đã xóa nhận xét – cproinger
Vấn đề là thế hệ metamodel dường như không hoạt động theo cách này. Siêu mô hình cho các lớp như vậy trống. – kboom
Cảm ơn câu hỏi/gợi ý của bạn. Bạn đã cứu ngày của tôi! ;) – Mirko