jueves, 25 de octubre de 2012

Diferencia entre el método addTo y el operador << (leftShift)

Sabemos que cuando creas una clase de dominio en Grails con una relación hasMany, automáticamente te crearán dos métodos para añadir o borrar instancias a la relación (addTo... y removeFrom...)
class Book {
  static hasMany = [authors: Author]

}
Para añadir una instancia author dentro de Book habría dos formas de hacerlo,
def author = Author.get(1)
def book = Book.get(3)

book.addToAuthors(author) //La colección authors ya está inicializada
ó
book.authors << author //La colección tiene que estar inicializada antes con book.authors = []

2 comentarios:

  1. En realidad solo hay una forma segura de agregar elementos: addTo(). Dado que este metodo se encarga de ajustar las relaciones bidireccionales entre classes de dominio, es decir, << no le importa si el otro lado tiene belongsTo o no.

    ResponderEliminar
    Respuestas
    1. Gracias Andrés por inaugurar los comentarios en el blog.

      Eliminar