sql >> Base de Datos >  >> RDS >> Mysql

¿Pertenece polimórfico a muchos a muchos mapeo en cilindros?

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.

  1. 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 class campo para encontrar una clase concreta al leer el objeto de db.

  2. Si mapea su Taggable s a dos tablas - Taggable parte a Taggable y 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.