martes, 7 de agosto de 2012

Relaciones

Hay varios tipos de relaciones que se pueden hacer en GORM:
  • one-to-one (también se utiliza hasOne)
UNIDIRECCIONAL
class Face{
  Nose nose
}

class Nose {

}
BIDIRECCIONAL
class Face{
  Nose nose
}

class Nose { 
  static belongsTo = [face : Face]
}
  • one-to-many / many-to-one
UNIDIRECCIONAL
class Author {
  static hasMany = [books: Book]
class Book {
  
}
* Grails mapea este tipo de relación con una join table.
* ORM permite mapear una relación unidireccional con una FK (foreign key) en la tabla de Author.

BIDIRECCIONAL
class Author {
  static hasMany = [books : Book]
}
class Book {
  static belongsTo = [author : Author]
}
* ORM permite mapear esta relación con una FK (foreign key) en la tabla de Author.
  • many-to-many
class Author {
  static hasMany = [books : Book]
}
class Book {
  static belongsTo = Author //Sin mapa [author : Author] 
  static hasMany = [authors : Author]
}
* belongsTo nos define cual es el propietario de la relación.
* ORM permite mapear este tipo de relaciones con una tabla intermedia con los ids de Author y Book.

No hay comentarios:

Publicar un comentario