sql >> Database >  >> RDS >> Mysql

Polymorf behoortTo in veel tot veel mapping in graals?

Hibernate kan een interface toewijzen - zie voorbeeld . Ik betwijfel of Grails dit ondersteunt bij het in kaart brengen van een conventie - maar je kunt proberen de mapping te gebruiken annotaties uit het bovenstaande voorbeeld, of XML-configuratie.

bewerken :een reactievraag beantwoorden:

Op databaseniveau moet u een Taggable . hebben tabel voor Tag.References verwijzen met een externe sleutel.

  1. Discriminator zal polymorfisme NIET verslaan, als het automatisch wordt toegevoegd - bijvoorbeeld in tabel-per-hiërarchie-toewijzing voegt Hibernate/Gorm een ​​class toe veld om een ​​concrete klasse te vinden bij het lezen van een object uit db.

  2. Als u uw Taggable . toewijst s naar twee tabellen - Taggable deel naar Taggable en al het andere naar een specifieke tabel, waarnaar 1:1 wordt verwezen - al het discriminatorwerk zou door Hibernate voor u moeten worden gedaan.

BTW class veld is vrij lang - het bevat een volledig gekwalificeerde klasnaam .

bewerk 2 :Hoe dan ook, het wordt behoorlijk complex, en ik zou persoonlijk kiezen voor de aanpak die ik in een andere vraag voorstelde :

  • zoek dynamisch alle klassen met de Taggable-interface voor hasMany=[tags:Tag] eigendom;
  • of, minder wenselijk - om een ​​handgemaakte kindertafel en een discriminator te hebben.



  1. Een door komma's gescheiden waarde in kolommen splitsen

  2. Laravel classloader.php-fout kan stream niet openen:geen bestand of map

  3. 2 manieren om een ​​tabel op een gekoppelde server te maken met T-SQL

  4. ORA-28040:Geen overeenkomende uitzondering voor authenticatieprotocol