左加入grails标准

时间:2015-07-10 09:22:23

标签: grails gorm criteria

我们有一个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

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

问题是,如果您没有外键或至少User,grails就不会知道hasOne端的连接。如果您有static hasOne = [licence: Licence],则您的代码将按照here的答案工作。