Herencia y composición
Por default Grails utiliza la estrategia donde solo utiliza una tabla con un discriminador (table-per-hierarchy).
El esquema table-per-hierarchy
, se guardan toda la jerarquía de clases en la misma tabla. Se utiliza un discriminador para identificar la clase.
Consejo general: No utilices herencias muy profundas y no abuses del uso de la herencia para no tener problemas de performance en la bd.
La herencia permite queries polimórficos:
Animal.list()
: obtiene todos los animales
Puma.list()
: obtiene todos los pumas
Sirve para componer una clase a partir de varias columnas de una misma tabla, por ejemplo si se tiene las columnas número, colonia y codigoPostal: las tres columnas se podrían componer dentro de una clase Direccion