Can';t创建包含belongsTo关系的grails条件查询

Can';t创建包含belongsTo关系的grails条件查询,grails,criteria,gorm,hibernate-criteria,Grails,Criteria,Gorm,Hibernate Criteria,我一直在尝试创建一个包含belongsTo关系的标准生成器,但尚未成功。考虑下面的模型: class Msg { ... static belongsTo = [user: User] ... } class User { ... Organisation organisation ... } 我正在尝试进行以下查询: Msg.createCriteria().list() { ... user { eq

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

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

class User {
    ...
    Organisation organisation
    ...
}  
我正在尝试进行以下查询:

Msg.createCriteria().list() {
    ...
    user {
        eq("organisation", organisationInstance)
    }
    ...
}
我得到的只是以下错误

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)
我尝试在条件查询中添加不同的小内容,如:

join "user"
fetchMode("user", org.hibernate.FetchMode.EAGER)
但还是有同样的问题

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

static mapping = {
    columns {
        user lazy: false
    }
}
仍然不起作用

有没有办法使用包含belongsTo查询的criteria builder

提前感谢您的帮助。

卢西恩

我找到了解决办法!这个问题与criteria builder完全无关。在这个例子中,我在作用域中有一个用户变量。一旦删除它,它就像一个符咒一样工作:-)

与上面的示例有什么区别?对不起,我拼错了。。它当然应该包含一个“()”。纠正。在我的头撞了很长一段时间后,它起了作用。这个错误没有给出任何关于这个问题的线索。谢谢你的分享!我以前也遇到过这个问题,刚才又遇到了。谢谢你让我记忆犹新。欺骗我两次。。。
def criteria = Msg.createCriteria()
results = criteria.list{
    user{
        eq("organisation", organisationInstance)
    }
}