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获取不同的父行
提前致谢
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查询
| 归档时间: |
|
| 查看次数: |
8026 次 |
| 最近记录: |