LIMIT in Postgres not supported in HQL?

余生颓废 提交于 2019-12-07 08:52:12

问题


I am having error using the following code in Grails executing HQL to get the first 30 Item objects:

 def items = Item.executeQuery('SELECT i FROM Item as i LIMIT 30 OFFSET 0')

my backend database is Postgres. However, I got:

org.hibernate.hql.ast.QuerySyntaxException: unexpected token: LIMIT near line 1, column ...

Obviously, the error tells that LIMIT is not supported by HQL. How do I make it work? In other words, how do I make HQL execute native SQL that is well supported by Postgres?


回答1:


you could do it the Grails/GORM way using list also

def items = Item.list(offset:0, max:30)

Since you are using HQL I have edited my answer based on comment below; either approach would work

def items = Item.executeQuery('SELECT i FROM Item as i', [max: 30, offset: 0]) 



回答2:


query.setMaxResults(..)

Have a look at the hibernate API



来源:https://stackoverflow.com/questions/4094610/limit-in-postgres-not-supported-in-hql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!