Hibernate puede mapear una interfaz - ver ejemplo . Dudo que Grails admita esto en el mapeo por convención, pero puede intentar usar el mapeo anotaciones del ejemplo anterior, o configuración XML.
editar :respondiendo una pregunta de comentario:
A nivel de base de datos, debe tener un Taggable tabla para Tag.References para hacer referencia con una clave externa.
-
El discriminador NO derrotará el polimorfismo, si se agrega automáticamente; por ejemplo, en el mapeo de tabla por jerarquía, Hibernate/Gorm agrega una
classcampo para encontrar una clase concreta al leer el objeto de db. -
Si mapea su
Taggables a dos tablas -Taggableparte aTaggabley todo lo demás a una tabla específica, referenciada 1:1:Hibernate debe realizar todo el trabajo del discriminador por usted.
Por cierto class el campo es bastante largo:contiene un nombre de clase completamente calificado .
editar 2 :De cualquier manera, se está volviendo bastante complejo, y personalmente seguiría el enfoque que sugerí en otra pregunta :
- Consulte dinámicamente todas las clases con interfaz Taggable para
hasMany=[tags:Tag]propiedad; - o, menos preferible, tener una mesa infantil hecha a mano y un discriminador.