【发布时间】:2015-07-10 09:22:23
【问题描述】:
我们有一个用户类
class User {
...
}
和另一个班级:
class Licence {
User user
Event event
}
我们想要做的是左连接(因为不是每个用户我们在许可类中都有一个条目)。
我们天真地这样做了:
def a = User.withCriteria {
createAlias("Licence", "l", CriteriaSpecification.LEFT_JOIN)
eq("id", "l.user.id")
if (something == true)
isNull("l.id")
else
isNotNull("l.id")
}
但查询失败:
could not resolve property Licence of User
有人可以帮忙查询一下吗?
【问题讨论】:
-
User和Licence之间的连接性质是什么?是一对多还是一对一?在我看来,您需要static hasOne = [licence: Licence]或static hasMany = [licences: Licence]用户 -
其实是对用户的一对一。但是我没有声明 hasOne 关系,因为当 hasOne 端可以为空时,我总是遇到 hasOne 问题...
标签: grails grails-orm criteria