sql >> Database teknologi >  >> RDS >> Mysql

Polymorfe tilhører i mange til mange kortlægning i grale?

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.

  1. 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.

  2. Hvis du kortlægger din Taggable s til to tabeller - Taggable del til Taggable 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.



  1. ListAGG i SQLSERVER

  2. MySQL konverter tabel fra Latin1 til utf8

  3. Er mysql_real_escape_string nok til Anti SQL Injection?

  4. Sådan dokumenterer du din SQL Server-database