Hibernate kan kortlægge en grænseflade - se eksempel . Jeg tvivler på, om Grails understøtter dette i by-konvention kortlægning - men du kan prøve at bruge kortlægningen annoteringer fra eksemplet ovenfor, eller XML-konfiguration.
rediger :besvare et kommentarspørgsmål:
På et databaseniveau skal du have en Taggable
tabel for Tag.References
at referere med en fremmednøgle.
-
Diskriminator vil IKKE besejre polymorfi, hvis den tilføjes automatisk - for eksempel i tabel-per-hierarki-kortlægning tilføjer Hibernate/Gorm en
class
felt for at finde ud af en konkret klasse ved læsning af objekt fra db. -
Hvis du kortlægger din
Taggable
s til to tabeller -Taggable
del tilTaggable
og alt andet til specifik tabel, refereret til 1:1 - alt diskriminatorarbejdet skal udføres for dig af Hibernate.
BTW class
feltet er ret langt - det indeholder et fuldt kvalificeret klassenavn .
rediger 2 :Uanset hvad, så bliver det ret komplekst, og jeg ville personligt gå med den tilgang, jeg foreslog i et andet spørgsmål :
- forespørg dynamisk alle klasserne med taggbar grænseflade for
hasMany=[tags:Tag]
ejendom; - eller mindre at foretrække - at have et håndlavet børnebord og en diskriminator.