在grails中的一对多关联中检索活动子项

时间:2012-09-11 12:15:48

标签: grails-2.0

我有以下课程

class Audit {
    Status status = Status.ACTIVE
}

class Book{
    String name;
    Audit audit
    static embedded = ['audit']
    static belongsTo = [author:Author]
}

class Author{
    String name;
    Audit audit
    List books
    static embedded = ['audit']
    static hasMany = [books:Book]
}

我想为作者检索有效的书籍。你能建议我这个查询吗? 我正在尝试在作者中添加方法,如下所示

List<Book> getActiveBooks(){
}

或者如果有任何其他方式来检索我的书籍..仅作为有效书籍。 请帮帮我

以下是包含列

的表格
  

     

name,audit_status,author_id

     

作者

     

name,audit_status

2 个答案:

答案 0 :(得分:0)

查看CriteriaBuilder

您可以使用它来搜索作者的状态(请参阅“查询关联”部分)。

将此与投影一起使用(请参阅“使用投影查询”)以获取图书清单。

答案 1 :(得分:0)

这样做的一种方法是在Author中添加namedQueries块,然后调用

def activeBooks = Author.getActiveBooks().list()

这是作者类namedQueries

class Author {
    static namedQueries = {
        getActiveBooks {
            books {
               audit{
                eq 'status', Status.ACTIVE
               }
           }
        }
    }
}

我假设Status也是一个域对象。如果是这样,GORM将匹配状态对象的id 请仔细检查语法。