Grails在不相关的域之间留下了外部联接。(单向一对多关系)

时间:2013-06-07 10:41:01

标签: grails hql criteria createcriteria

我正在关注this链接,以便在我的应用中为性能带来一些积极的变化。

我有以下两个课程

class Topic {

    String title
    String body
    String type
    User user

    static mapping = {
        body type:"text"
    }
}

class Follower {
    Topic topic
    User user
    static constraints = {
    }
}

记住以上两个类,是否可以为后续查询编写等效标准?

SELECT title,follower.user_ID,topic.id  FROM TOPIC 
left outer join follower on topic.id = follower.topic_id
where follower.user_id = 1 or follower.user_id is null;

我提出以下标准失败,因为follower中既没有topic的引用,也没有找到将此标准转换为右连接的方法,因为没有这样的标准规范

def recentQuestions = Topic.createCriteria().list([sort:'lastUpdated',order:'desc',max:5]){
            createAlias  "follower", "f" , CriteriaSpecification.LEFT_JOIN

            or{
                eq('f.user',u)
                isNull('f.user')
            } 
            eq('type','FORUM',[ignoreCase: true])

        }

0 个答案:

没有答案