Grails findAll有sort,order,max和offset吗?
发布时间:2020-12-14 16:33:41 所属栏目:大数据 来源:网络整理
导读:我想在findAll查询中集成sort,order,max和offset.以下工作正常: def books = Book.findAll("from Book as b where b.approved=true order by b.dateCreated desc",[max: max,offset: offset]) 但我想要的是: def books = Book.findAll("from Book as b whe
我想在findAll查询中集成sort,order,max和offset.以下工作正常:
def books = Book.findAll("from Book as b where b.approved=true order by b.dateCreated desc",[max: max,offset: offset]) 但我想要的是: def books = Book.findAll("from Book as b where b.approved=true",[sort: 'dateCreated',order: 'desc',max: max,offset: offset]) 这不起作用.我该怎么重写呢? 解决方法
HQL不支持排序和顺序作为参数,因此您需要在“HQL表达式”中包含“order by”
def books = Book.findAll("from Book as b where b.approved=true" + " order by b.dateCreated desc",offset: offset]) (或者在这种情况下只使用Book.findAllByApproved(true,[…])而不是HQL). 因此,如果排序和顺序是变量,你需要一个技巧 def books = Book.findAll("from Book as b where b.approved=true" + (params.sort ? " order by b.${params.sort} ${params.order}" : ''),offset: offset]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |