Grails:急切加载不起作用

时间:2010-11-26 10:09:14

标签: java hibernate grails gorm eager-loading

我想从main.gsp中的用户对象访问组织列表:

<g:select name="effectiveOrganisation"
from="${session.user.organisations}" optionKey="id" optionValue="name"
value="${session.effectiveOrganisation?.id}" />

用户对象由以下类定义:

class SystemUser {

    static hasMany = [organisations: Organisation]
    static belongsTo = [Organisation]
    static mapping = {
        organisations lazy: false
    }

}

但是当我执行我的代码时,我得到了:

Exception Message: could not initialize proxy - no Session
Caused by: Error executing tag <g:form>: 
Error executing tag <g:select>: could not initialize proxy - no Session

为什么渴望在这里不起作用?

1 个答案:

答案 0 :(得分:3)

从您的代码中不清楚,但我会假设您基于belongsTo属性在此处拥有多对多。

我已成功用Grails 1.3.5重现了这一点。问题似乎只会影响具有belongsTo属性的关系的一面。如果您尝试使用组织相同的代码 - &gt;相反,用户可以使用。

修复很奇怪:users上的Organization集合也非懒惰。

这个必须进入GORM Gotchas系列!