Grails 1.1 持久化基础 - 立即加载和延迟加载

在GORM中,关联默认是lazy的.最好的解释是例子:class Airport { String name static hasMany = [flights:Flight] } class Flight { String number static belongsTo = [airport:Airport] }上面的domain类和下面的代码:def airport = Airport.findByName("Gatwick") airport.flights.each { println it.name }GORM GORM将会执行一个单独的SQL查询来抓取 Airport 实例,然后再用一个额外的foreach 查询逐条迭代 flights 关联.换句话说,你得到了N+1条查询.

根据这个集合的使用频率,有时候这可能是最佳方案.因为你可以指定只有在特定的情况下才访问这个关联的逻辑.