Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用HQL返回rownum列值?(使用oracle数据库)_Oracle_Hibernate_Oracle10g_Hql - Fatal编程技术网

如何使用HQL返回rownum列值?(使用oracle数据库)

如何使用HQL返回rownum列值?(使用oracle数据库),oracle,hibernate,oracle10g,hql,Oracle,Hibernate,Oracle10g,Hql,我有一个复杂的HQL查询 我想访问Oracle特定的rownum列值,作为返回结果的一部分。如何编写查询(和/或更改hbm.xml)以支持此功能 到目前为止,我尝试的方法不起作用: 修改我的hbm.xml <property name="rownum" type="int" update="false" insert="false" generated="never"/> 但是我得到了java.sql.SQLException:ORA-01747:无效的user.table.col

我有一个复杂的HQL查询

我想访问Oracle特定的rownum列值,作为返回结果的一部分。如何编写查询(和/或更改hbm.xml)以支持此功能

到目前为止,我尝试的方法不起作用:

修改我的hbm.xml

<property name="rownum" type="int" update="false" insert="false" generated="never"/>
但是我得到了java.sql.SQLException:ORA-01747:无效的user.table.column、table.column或column规范

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


一些背景:

  • hibernate使用oracle的rownum“在引擎盖下”对结果进行分页

    • 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
      

      如果确实希望在映射中执行此操作,可以尝试将其定义为公式而不是列。如果Hibernate不将表名识别为列,则它可能不会预先挂起该表名。

      对于这种语句,Hibernate在java中会返回什么?名单?@小姐,对不起,我不知道
      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