无法创建包含belongsTo关系的Grails Criteria查询

Mr.*_*r.B 5 grails criteria grails-orm hibernate-criteria

我一直在尝试创建一个包含belongsTo关系的标准构建器,但尚未成功.考虑以下模型:

class Msg {
    ...
    static belongsTo = [user: User]
    ...
}  

class User {
    ...
    Organisation organisation
    ...
}  
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行以下查询:

Msg.createCriteria().list() {
    ...
    user {
        eq("organisation", organisationInstance)
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我得到的只是以下错误

ERROR errors.GrailsExceptionResolver  - No signature of method: static User.call() is applicable for argument types: (MsgService$_findMessages_closure1_closure6) values: [MsgService$_findMessages_closure1_closure6@afcba8]
Possible solutions: save(), wait(), any(), getAll(), save(java.lang.Boolean), save(java.util.Map)
Run Code Online (Sandbox Code Playgroud)

我试图在条件查询中添加不同的小添加项,例如:

join "user"
fetchMode("user", org.hibernate.FetchMode.EAGER)
Run Code Online (Sandbox Code Playgroud)

但仍然遇到同样的问题.

我甚至尝试将以下静态映射添加到Msg类:

static mapping = {
    columns {
        user lazy: false
    }
}
Run Code Online (Sandbox Code Playgroud)

还是行不通.

有没有办法使用包含belongsTo查询的条件构建器?

感谢您的帮助.
吕西安

Mr.*_*r.B 7

我找到了解决方案!该问题根本与标准构建者无关.在这个例子中,我在范围内有一个用户变量.一旦删除它就像一个魅力:-)