sql >> Databasteknik >  >> RDS >> Mysql

Polymorphic tillhör i många till många kartläggning i graler?

Hibernate kan kartlägga ett gränssnitt - se exempel . Jag tvivlar på om Grails stöder detta i by-konvention kartläggning - men du kan prova att använda kartläggningen kommentarer från exemplet ovan, eller XML config.

redigera :svara på en kommentarsfråga:

På databasnivå måste du ha en Taggable tabell för Tag.References att referera med en främmande nyckel.

  1. Diskriminator kommer INTE att besegra polymorfism, om den läggs till automatiskt - till exempel i tabell-per-hierarki-mappning lägger Hibernate/Gorm till en class fält för att ta reda på en konkret klass vid läsning av objekt från db.

  2. Om du mappar din Taggable s till två tabeller - Taggable del till Taggable och allt annat till specifik tabell, refererad 1:1 - allt diskrimineringsarbete bör göras åt dig av Hibernate.

BTW class fältet är ganska långt - det innehåller ett fullständigt kvalificerat klassnamn .

redigera 2 :Oavsett vilket, det blir ganska komplicerat, och jag skulle personligen gå med på det sätt jag föreslog i en annan fråga :

  • sök dynamiskt alla klasser med Taggable-gränssnitt för hasMany=[tags:Tag] egendom;
  • eller, mindre föredraget - att ha ett handgjort barnbord och en diskriminator.



  1. Varför ger mig alla resultat att använda ett Understreck i ett LIKE-filter?

  2. SQL Server - transaktioner återgår vid fel?

  3. Återskapa MySQL-fel:Servern stängde anslutningen (node.js)

  4. Lista alla temporära tabeller i SQLite