ORACLE rowId在Hibernate标准中的使用



我有ORACLE数据库和2个表。我需要从表1内部连接表2和顺序ORACLE RowID列选择行。要选择,我使用条件查询。要添加by语句的顺序,我使用

criteria.addOrder(Order.asc("this.rowId"));

在映射RowId看起来像

<property name="rowId" column="ROWID" insert="false" update="false"/>

但是hibernate会生成错误的sql查询,比如

select this_.docId as attr0_, this_.name as attr1_ from table1 this_ inner join table2 t2_ on this_.docId=t2_.docId order by ROWID asc

Hibernate从查询中删除别名"this"因为ORACLE中所有的表都有ROWID列,所以出现ORACLE错误ORA-00918

我如何写正确的查询hibernate的标准,以订购oracle RowId列?

Hibernate认为rowid是一个oracle函数,但它是一个列标识符。要hibernate rowwid是一个列名我们需要将hibernate映射写成

<property name="rowId" column="`ROWID`" insert="false" update="false"/>

相关内容

  • 没有找到相关文章