我一直在尝试创建一个包含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查询的标准构建器?
提前感谢您的帮助。
吕西安
最佳答案
我找到了解决方案!问题根本与标准构建器无关。在这种情况下,我在范围内有一个用户变量。一旦删除它,它就像一个魅力:-)
关于grails - 无法创建包含belongsTo关系的grails Criteria查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4050873/