Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Polimorficzny należy do wielu map w Grails?

Hibernate może mapować interfejs - zobacz przykład . Wątpię, czy Grails obsługuje to w mapowaniu zgodnym z konwencją – ale możesz spróbować użyć mapowania adnotacje z przykładu powyżej lub konfiguracja XML.

edytuj :odpowiadanie na pytanie w komentarzu:

Na poziomie bazy danych musisz mieć Taggable tabela dla Tag.References odwołać się za pomocą klucza obcego.

  1. Dyskryminator NIE pokona polimorfizmu, jeśli zostanie dodany automatycznie — na przykład w mapowaniu tabeli na hierarchię, Hibernate/Gorm dodaje class pole, aby znaleźć konkretną klasę podczas odczytu obiektu z bazy danych.

  2. Jeśli zmapujesz swój Taggable s do dwóch tabel - Taggable część do Taggable a wszystko inne do konkretnej tabeli, oznaczonej 1:1 – cała praca nad dyskryminacją powinna być wykonana za Ciebie przez Hibernate.

BTW class pole jest dość długie - zawiera w pełni kwalifikowaną nazwę klasy .

edytuj 2 :Tak czy inaczej, robi się to dość skomplikowane i osobiście zasugerowałbym podejście, które zasugerowałem w innym pytaniu :

  • dynamicznie wysyłaj zapytania do wszystkich klas za pomocą interfejsu Taggable dla hasMany=[tags:Tag] nieruchomość;
  • lub, mniej korzystnie - mieć ręcznie wykonany stolik dziecięcy i rozróżniacz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić hasło użytkownika root w MySQL?

  2. Jak filtrować wyniki SQL w relacji ma wiele przejść?

  3. Zapytanie o aktualizację MySQL przy użyciu lewego sprzężenia

  4. MySQL wybierz DATETIME podobnie do minuty

  5. Szyfrowanie danych użytkownika w celu automatycznego logowania do systemu stron trzecich