Grails懒惰以双向一对多方式获取

时间:2014-08-20 14:02:37

标签: grails one-to-many lazy-evaluation

我对双向一对多关系中的延迟初始化集合感到困惑,

我有两个域模块和规则,它们之间存在双向otm

Class Module{
..
static hasMany = [providedRules : Rule]
..
}

Class Rule{
..
static belongsTo = [module : Module]
..
}

一种简单的测试方法:

def module = Module.get(id)
module.providedRules.each{
println it.description // i expected a query to Rule table for each iteration
}

我希望查询每次访问"说明"属性,但我没有看到任何迭代查询。

你有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:0)

添加这样的日志记录,看看日志中会发生什么:

datasource {
...
logSql = true
...
}

另请参阅文档中的fetching更新 签入grails。从Rule中删除belongsTo,它的工作方式与您想要的一样。 Lokks喜欢双向映射,它不是加载代理而是加载完整对象。