2015-02-26 2 views
0

Я хочу получить идентификатор строки таблицы, у которой нет первичного ключа. Я мог бы получить rowId, используя sql-запрос. Но я думаю, что RowID является специфичным для базы данных. Поэтому он не будет работать, если база данных изменится.Как получить физическое местоположение (идентификатор строки) записи из БД с использованием JPA + Hibernate

Может кто-нибудь помочь мне получить rowID с использованием hql или критериев?

ответ

0

ROWID is virtual столбец, как и любой другой. Попробуйте найти поддержку столбца VIRTUAL в Hibernate.

Например: http://johnpremjeetpage.blogspot.cz/2009/06/mapping-hibernate-to-computed-columns.html

Последний раз, когда я пытался использовать его в EclipseLink это не удалось. @ReadOnly аннотации игнорируются в сочетании с другими аннотациями, и не было способа исключить виртуальный столбец из сгенерированных операторов вставки.

+0

спасибо. Может ли ROWID для изменения записи без какого-либо уведомления? Не следует ли использовать ROWID для извлечения записей? – Udhay

+0

http://stackoverflow.com/questions/435109/what-can-cause-an-oracle-rowid-to-change. – ibre5041

Смежные вопросы