Grails 3.2附带了一些GORM的主要更新。如何进行如下查询:
def c = Cat.createCriteria()
List<Cat> data = c.listDistinct(){
createAlias('furType', 'ft)
createAlias('kittens', 'kitten')
createAlias('kitten.furType', 'kft')
or {
ilike('ft.color', 'orange')
ilike('kft.color', 'orange')
}
maxResults 10
firstResult 10
}
目前,当每只猫有两只小猫时,此查询仅显示5个结果而不是10个结果。
编辑:编辑示例以显示如何调用重复的Cats。
答案 0 :(得分:0)
试试这个。
def c = Cat.createCriteria()
List<Cat> data = c.listDistinct(max: 10, offset: 10){
createAlias('kittens', 'kitten')
createAlias('kitten.furType', 'kft')
ilike('kft.color', 'orange')
}
更好的方法是,如果您通过创建链接进行分页,则可以使用以下格式创建链接
http://example.com/controller/action?offset=10
然后在您的控制器操作中,您可以执行以下操作
params.max = 10
def c = Cat.createCriteria()
List<Cat> data = c.listDistinct(params){
createAlias('kittens', 'kitten')
createAlias('kitten.furType', 'kft')
ilike('kft.color', 'orange')
}