как вернуть значение столбца rownum с HQL? (с помощью оракула БД) - PullRequest
2 голосов
/ 10 февраля 2009

У меня сложный 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: недопустимый user.table.column, table.column или спецификация столбца

Я подозреваю, что мне может понадобиться смешать некоторые sql с моим сложным hql-запросом ... предложения приветствуются. Спасибо.


Некоторый фон:

Ответы [ 2 ]

2 голосов
/ 10 февраля 2009

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 голосов
/ 11 февраля 2009

Если вы действительно хотите сделать это в отображении, вы можете попытаться определить его как формулу, а не столбец. Hibernate может не ожидать имя таблицы, если оно не распознает его как столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...