左连接 grails 条件
Left Join grails criteria
我们有一个用户 class
class User {
...
}
和另一个 class:
class Licence {
User user
Event event
}
我们想要做的是 Left Join(因为不是每个用户我们在许可 class 中都有一个条目)。
我们天真地这样做了:
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
有人可以帮忙做这个查询吗?
问题是,如果您没有外键或至少 hasOne
,grails 无法识别 User
端的连接。如果您有 static hasOne = [licence: Licence]
,您的代码将按回答 here.
工作
我们有一个用户 class
class User {
...
}
和另一个 class:
class Licence {
User user
Event event
}
我们想要做的是 Left Join(因为不是每个用户我们在许可 class 中都有一个条目)。
我们天真地这样做了:
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
有人可以帮忙做这个查询吗?
问题是,如果您没有外键或至少 hasOne
,grails 无法识别 User
端的连接。如果您有 static hasOne = [licence: Licence]
,您的代码将按回答 here.