martes, 19 de julio de 2011

CampusParty - Video - Introducción a Grails (ES)(MX)

Uso de belongsTo y hasMany - Clases de Dominio

Uso de las Clases de Dominio

En Grails un dominio es una clase, ubicada en el directorio: grails-app/domain.
Una clase de dominio se crea con el comando: grails create-domain-class Book.
Se edita el archivo creado con el editor preferido.

ejemplo:
class Book {
 String title
 Date releaseDate
 Author author
}


El nombre de la clase, por defecto, se relacionan con el nombre de tabla en minúsculas y separadas por guiones en lugar de mayúsculas y minúsculas. Mientras que cada propiedad se asigna a las columnas individuales.
Consulte la sección de guía de usuario en GORM  para más información.

  • Creamos un aplicación en Grails
    • abrimos la consola, escribimos el comando
      • grails create-app biblio
    • escribimos el comando cd biblio para entrar a la aplicación


belongsTo

Define una relación de "Pertenece a", donde la clase especificada por belongsTo asume la propiedad de la relación. Esto tiene el efecto de controlar la forma en cascada de eliminaciones. En otras palabras,el lado de ser dueño de eliminaciones en cascada cuando el belongsTo se especifica en el lado inverso.

Creamos la clase de dominio con el comando: grails create-domain-class Book
Se edita el archivo creado con el editor preferido, quedando de la siguiente manera:

ejemplo:
class Book {
   String title
   static belongsTo = [author:Author]
}


Crearemos el controlador de Book con el comando:

grails generate-controller Book
En Grails el controlador esta ubicado en el directorio: grails-app/controller.
quedando de la siguiente manera:
class BookController {
   def scaffold = Book
}


En este ejemplo, la clase de libro se especifica que pertenece a la clase Autor, por lo tanto, cuando una instancia Autor se elimina también todos los casos relacionadoscon el Libro del Autor

hasMany

Define una asociación uno-a-muchos entre dos clases.
Creamos la clase de dominio con el comando: grails create-domain-class Author
Se edita el archivo creado con el editor preferido, quedando de la siguiente manera:

ejemplo:
class Author {
   String name
   static hasMany = [books:Book]
}


Crearemos el controlador de Author con el comando:

grails generate-controller Author
En Grails el controlador esta ubicado en el directorio: grails-app/controller.
quedando de la siguiente manera:
class AuthorController {
   def scaffold = Author
}


En este ejemplo se define una relación de uno a varios entre la clase Autor y de la clase Libro (un autor tiene muchos libros).
Por defecto GORM creará una propiedad de tipo java.util.Set utilizando la clave dentro de la definición del mapa hasMany. Por ejemplo, la definición:

static hasMany = [books:Book]


Corremos la aplicación:
grails run-app

Referencia: