En algunos frameworks de desarrollo de aplicaciones, las clases de dominio son conocidas como el modelo y no hay ninguna diferencia entre ambos términos. Las clases de dominio se refieren al modelo de datos de nuestra aplicación. En ellas definiremos las propiedades de cada una de las clases de nuestra aplicación, así como las restricciones de cada una de estas propiedades.
Un ejemplo de una clase de dominio que representa la típica información de los usuarios de una aplicación podría ser el siguiente:
En el ejemplo se muestra las propiedades de la clase de dominio Usuario, así como las restricciones que debe cumplir cada una de esas propiedades. Podéis encontrar un listado con las posibles restricciones en Grails en la página http://grails.org/Validation. El listado de posibles restricciones predefinidas en Grails es finito, sin embargo, es posible crear nuestras propias restricciones en Grails
A continuación veremos como definir las posibles relaciones entre las clases de dominio de una aplicación
Uno a uno
Uno a muchos / Muchos a uno
Muchos a muchos
GORM
La capa que aparece en Grails en los temas relativos a la persistencia de nuestras clases de dominio es GORM, quien, entre otras características, permite realizar operaciones del tipo Usuario.findAllByTipo(“administrador”), algo que sin duda facilita mucho la labor del desarrollador que se debe centrar únicamente en el desarrollo de la lógica de negocio y olvidarse de aspectos relacionados con la base de datos.