как вернуть значение столбца rownum с помощью HQL? (используя БД оракула)

У меня сложный 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... предложения приветствуются. Спасибо.


Немного фона:


person jedierikb    schedule 10.02.2009    source источник


Ответы (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
person Tony Andrews    schedule 10.02.2009
comment
для такого утверждения, что вернет спящий режим в java? a List‹Map‹String,Long›› ? - person riroo; 27.02.2017
comment
@miss_R Извините, я не знаю - person Tony Andrews; 27.02.2017

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

person Brian Deterling    schedule 11.02.2009