Hibernate có thể ánh xạ giao diện - xem ví dụ . Tôi nghi ngờ liệu Grails có hỗ trợ điều này trong ánh xạ theo quy ước hay không - nhưng bạn có thể thử sử dụng ánh xạ chú thích từ ví dụ trên hoặc cấu hình XML.
chỉnh sửa :trả lời câu hỏi bình luận:
Ở cấp độ cơ sở dữ liệu, bạn phải có Taggable
bảng cho Tag.References
để tham chiếu với khóa ngoại.
-
Discriminator sẽ KHÔNG đánh bại tính đa hình, nếu nó được thêm tự động - ví dụ:trong ánh xạ phân cấp bảng, Hibernate / Gorm thêm một lớp
class
để tìm ra một lớp cụ thể khi đọc đối tượng từ db. -
Nếu bạn ánh xạ
Taggable
của mình s đến hai bảng -Taggable
một phần củaTaggable
và mọi thứ khác cho bảng cụ thể, được tham chiếu 1:1 - tất cả công việc phân biệt đối xử sẽ được thực hiện cho bạn bằng Hibernate.
Lớp BTW class
trường khá dài - nó chứa đầy đủ tên lớp đủ điều kiện .
chỉnh sửa 2 :Dù bằng cách nào thì nó cũng trở nên khá phức tạp và cá nhân tôi sẽ thực hiện theo cách tiếp cận mà tôi đã đề xuất trong một câu hỏi khác :
- tự động truy vấn tất cả các lớp với giao diện Có thể gắn thẻ cho
hasMany=[tags:Tag]
tài sản; - hoặc ít thích hợp hơn - để có một bàn con được làm thủ công và một bộ phân biệt.