2009-02-10 73 views
2

我有一個複雜的HQL查詢。如何用HQL返回rownum列值? (使用oracle數據庫)

我想訪問Oracle特定的rownum列值作爲我返回結果的一部分。我如何編寫我的查詢(和/或更改我的hbm.xml)來支持它?

我至今嘗試過不工作:

修改我的hbm.xml

<property name="rownum" type="int" update="false" insert="false" generated="never"/> 

以及諸如查詢:

"select dog.rownum from Dog as dog where ..." 

,但我得到的java.sql .SQLException:ORA-01747:無效的user.table.column,table.column或列規範

我懷疑我可能需要混合一些sql與我的複雜hql查詢...建議歡迎。謝謝。


一些背景資料:

回答

2

ROWNUM不屬於任何表,所以您的查詢應該是:

"select rownum from Dog as dog where ..." 

例如:

SQL> select emp.ename, rownum from emp; 

ENAME   ROWNUM 
---------- ---------- 
SMITH    1 
ALLEN    2 
WARD    3 
JONES    4 
MARTIN    5 
BLAKE    6 
CLARK    7 
SCOTT    8 
KING    9 
TURNER    10 
+0

對於這樣的聲明什麼會休眠在java中返回?一個名單<地圖>? – riroo 2017-02-27 14:33:30

0

如果你真的想這樣做的映射,可能會嘗試將其定義爲公式而不是列。如果表名不能識別爲列,Hibernate可能不會預先設置表名。