我们有一个User类
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
有人可以帮忙解决这个问题吗?
答案 0 :(得分:1)
问题是,如果您没有外键或至少User
,grails就不会知道hasOne
端的连接。如果您有static hasOne = [licence: Licence]
,则您的代码将按照here的答案工作。