2

我有一个复杂的 HQL 查询。

我想访问 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: invalid user.table.column, table.column, or column specification

我怀疑我可能需要将一些 sql 与我的复杂 hql 查询混合在一起......欢迎提出建议。谢谢。


一些背景:

4

2 回答 2

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
于 2009-02-10T17:49:07.710 回答
0

如果您真的想在映射中执行此操作,您可以尝试将其定义为公式而不是列。如果 Hibernate 无法将表名识别为列,则它可能不会预先添加表名。

于 2009-02-11T01:01:52.773 回答