当我写这个hql时:
tempDocs = Document.findAll("FROM Document where docName LIKE :docn ORDER BY status asc",[docn:string],[max:limit, offset:startIndex])
是正常的。 但是当我试图通过写
来概括它时tempDocs = Document.findAll("FROM Document where docName LIKE :docn",[docn:string],[max:limit, offset:startIndex,sort:column,order:ordering])
这似乎没有给出正确的顺序。这里出了什么问题?
答案 0 :(得分:0)
根据findAll的文档,queryParams只有三个选项:max,offset,cache。作为两个示例之间的混合,您可以提供排序和顺序作为命名参数。
tempDocs = Document.findAll("FROM Document where docName LIKE :docn ORDER BY :sort :order",[docn:string],[max:limit, offset:startIndex,sort:column,order:ordering])
答案 1 :(得分:0)
类 org.hibernate.hql.internal.ast.QuerySyntaxException 信息 意外的令牌::第1行第89列[FROM receiptbucketserver.Receipt where project.customer.id =:customerId ORDER BY:sort:order]
我的语法看起来像这样(可能是错的,我不是专家) Receipt.findAll(" FROM Receipt where project.customer.id =:customerId ORDER BY:sort:order",[customerId:customer.id],[sort:column,order:ordering])
我能够让它看起来非常难看:
Receipt.findAll("from Receipt as r where r.project.customer.id = :companyId ORDER BY " + field + " " + sortOrder , [companyId: customer.id] )
呼叫:
def listReceipts = receiptHelperService.getReceiptsByCustomer(customerInstance, "vendor", "desc")