2010-11-04 41 views
4

我在執行HQL拿到第30項的對象Grails的使用下面的代碼有錯誤:HQL中不支持Postgres中的LIMIT?

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

我的後臺數據庫是Postgres的。然而,我得到了:

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

顯然,錯誤告訴LIMIT不被HQL支持。我如何使它工作?換句話說,我如何讓HQL執行Postgres良好支持的本地SQL?

回答

6

你能做到這一點的Grails/GORM way using list

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

由於您使用的HQL我已經根據下面的評論編輯我的答案;這兩種方法將工作

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

更好地使用[最大:30,偏差:0]圖作爲參數,因爲我們談論的executeQuery方法。 Item.executeQuery('SELECT i FROM Item as i',[max:30,offset:0]) – Oleksandr 2010-11-04 14:29:32