2011-10-18 35 views
1

當我使用DB2的ROW_NUMBER()時,我在Hibernate中遇到了問題,它說查詢異常:未定義的別名:ROW_NUMBER。該怎麼辦?謝謝Hibernate DB2 ROW_NUMBER()error

String strQuery= " SELECT c_.name, c_.id, c_.description, ROW_NUMBER() OVER(ORDER BY  
        c_.name) AS rownum FROM Category as c_ "; 
Query query = getHibernateTemplate().getSessionFactory(). 
getCurrentSession().createQuery(strQuery); 
+0

你是如何使用從休眠調用它。請粘貼你的代碼 – allthenutsandbolts

+0

,以避免這種數據庫之間的差異hibernate有dialects.http://www.javabeat.net/qna/163-list-of-hibernate-sql-dialects/具體用法,我想知道確切你想做什麼。例如,如果您打算使用rownumber進行分頁,則有具體的方法來完成該操作 – jambriz

回答

0

ROW_NUMBER()在DB2中不是有效的函數,但它在SQL Server中。你想要rownumber()函數。更改您的查詢以下,它應該工作:

String strQuery= " SELECT c_.name, c_.id, c_.description, rownumber() OVER(ORDER BY  
       c_.name) AS rownum FROM Category as c_ "; 
+1

錯誤,ROW_NUMBER()是DB2中的一項功能 http://www.ibm.com/developerworks/data/library/techarticle/dm- 0401kuznetsov/index.html的 – Samara