如何使用预测和标准获得不同的结果

Reh*_*man 7 grails hibernate grails-orm

我正在尝试使用Grails中的Criteria加载不同的父级.查询如下

查询:

def criteria = Parent.createCriteria();
        results =  criteria.list(max:params.max, offset:params.offset){
            projections{ groupProperty('id') }
            children{
                books{
                    like('title',"%book")
                    }
                }
            order("id","asc")
        }
Run Code Online (Sandbox Code Playgroud)

域类

    class Parent {

    String name

    static hasMany = [children:Child]

    static constraints = {
    }
}


class Child {

        String name
        Parent parent

        static belongsTo = [parent:Parent]
        static hasMany =   [books:Book]
        static constraints = {
        }
    }


class Book {

        String title
        Child child

        static belongsTo = [child:Child]
        static constraints = {
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题:我无法获得明显的父行.

其他采用的方法及其结果:我不知道为什么groupProperty不工作.我尝试过 不同的投影而不是groupProperty,它也不是很有成效!如果我使用 criteria.listDistinct而不是criteria.list然后我能够获得不同的父行,但早期的方法需要从额外的查询中获取totalCount以进行分页.因此,我非常有兴趣使用criteria.list获取不同的父行

提前致谢

mfl*_*yan 4

criteria.listDistinct如果更改条件查询以包含不同的根实体结果转换器,则可以获得相同的效果,如下所示:

    results =  criteria.list(max:params.max, offset:params.offset){
        children{
            books{
                like('title',"%book")
                }
            }
         resultTransformer Criteria.DISTINCT_ROOT_ENTITY            
         order("id","asc")
    }
Run Code Online (Sandbox Code Playgroud)

然而,grails 不返回 listDistinct 调用的分页结果是有原因的,因此可能需要使用运算符进行 HQLin查询