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ạ
Taggablecủa mình s đến hai bảng -Taggablemột phần củaTaggablevà 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.