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个结果。
编辑:编辑后的示例展示了如何调用重复的猫。
最佳答案
试试这个。
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
然后在 Controller 操作中,您可以执行以下操作
params.max = 10
def c = Cat.createCriteria()
List<Cat> data = c.listDistinct(params){
createAlias('kittens', 'kitten')
createAlias('kitten.furType', 'kft')
ilike('kft.color', 'orange')
}