Hibernate magic with lazy evaluation
I’ve just run across this phenomenon for the first time and it turns out that hibernate can be even lazier than I thought! To illustrate lets use this time-honoured example in Grails.
Here are our domain objects:
class Book {
String title
static belongsTo = [author : Author]
static constraints = {
}
}
class Author {
String name
static hasMany = [books : Book]
static constraints = {
}
}
and we’ll add some sample data in our bootstrap.groovy
:
def init = { servletContext ->
def alice = new Author(name: 'alice').save()
def book1 = new Book(title: 'book1')
def book2 = new Book(title: 'book2')
alice.addToBooks(book1)
alice.addToBooks(book2)
}
Now we’ll ...
more ...