当前位置: 首页 > 知识库问答 >
问题:

在Hibernate标准中使用ORACLE rowId

韩佐
2023-03-14

我有ORACLE DB和2个表。我需要从表1内部连接表2中选择行,并按ORACLE RowID列排序。要选择,我使用条件查询。要添加我使用的order 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条件将正确的查询写入order by oracle RowId列?

共有1个答案

齐威
2023-03-14

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

<property name="rowId" column="`ROWID`" insert="false" update="false"/>
 类似资料:
  • 我想使用hibernate标准删除表中的所有记录,比如 我得到了以下很多帮助 是否有任何方法可以使用Criteria类或任何其他我可以使用的类来截断?请告诉我

  • 我正在将我们的DAO从使用Hibernate Criteria API迁移到JPA Criteria API。我有一个包含多个的类: 在查询中,我使用的是JoinType。左键以消除默认生成的交叉连接: 我得到了正确的结果,所有的A和B记录都得到了正确的检索。然而,在迁移之后,我遇到了一个问题:尽管在生成的查询中使用了左外连接,但所有的记录都是逐个检索的。以前(使用Hibernate Criter

  • 问题内容: 嗨,我有这个大型的OraclehibernateWeb应用程序,它似乎给出了此错误 并且我需要由某人测试的Java代码作为hibernate用户定义的组件,以便尽可能容易地将其添加到屏幕上的搜索Java类中,有人可以拥有经过测试的组件? 问题答案: 我尝试从链接下面的代码,它似乎工作得很好,万一将来链接被打破,我会粘贴代码。 保持简单保持微笑:)

  • 问题内容: 假设我有一个带有数量字段和价格字段的持久类Item。有没有办法建立一个计算数量*价格之和的标准? 问题答案: 我认为您也可以使用SQL投影。应该是这样的:

  • 问题内容: 我正在尝试使用Hibernate进行复杂的查询。我一直倾向于“标准”,但是我开始怀疑这是不可能的,因此任何建议都将有所帮助。 我有一个如下的实体结构: 这些实体与您期望的相关: 现在,我希望能够采用一组属性/值对(字符串)并找到包含 所有 属性/值对的所有实例。在“值”中,只有attribute和localAttributeName中的一个为非空值,因此属性名称可以与localAttr

  • 现在我正在使用Criteria Hibernate查询从员工表中查询所有记录,它工作正常。我需要将员工表与库表联接,其中库。Emp_Id=员工。Emp_id我是否需要从员工表中获取所有记录,并从库表中获取书名和结账日期,作为联接选择查询的一部分。我该怎么做?