Secciones

Clases de dominio en Grails

Inicio » Artículos » Clases de dominio en Grails
La categoría del artículo es
Escrito el 15 septiembre 2009, 12:04


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:

Groovy:
class Libro {
    String isbn
    String titulo
    String autor
    String editorial
    Integer anyo
    String descripcion
    Date fecha

    static hasMany = [operaciones:Operacion]
   
    static constraints = {
        isbn(blank:false)
        titulo(blank:false)
        autor(blank:false)
        editorial()
        anyo()
        fecha(nullable:true)
        descripcion(maxSize:1000,nullable:true)
    }

    String toString(){
        titulo
    }
}
 

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

Groovy:
class Libro {
    String isbn
    String titulo
    String autor
    String editorial
    Integer anyo
    String descripcion
    Date fecha

    static hasMany = [operaciones:Operacion]
   
    static constraints = {
        isbn(blank:false)
        titulo(blank:false)
        autor(blank:false)
        editorial()
        anyo()
        fecha(nullable:true)
        descripcion(maxSize:1000,nullable:true)
    }

    String toString(){
        titulo
    }
}
 

Uno a muchos / Muchos a uno

Groovy:
class Libro{
        ....
        OperacionActiva operact
        ....
}

class OperacionActiva{
        ....
        Libro libro
        ....
}
 

Muchos a muchos

Groovy:
class Usuario{
        ....
        static hasMany [operaciones:Operacion]
}

class Operacion {
        ....
        Usuario usuario
}
 

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.


Menea esta noticia Busca en Technorati enlaces a esta nota Diggea esta noticia Añádeme a tu del.icio.us

¿Qué te parece como trabaja Grails con las clases de dominio?

Ayuda Textile