java - Hibernate:使用子查询时出错

标签 java hibernate hql subquery

我正在尝试以这种格式编写子查询

listObj = session.createQuery("from TablePersistence where column1 not in (select column2 from TablePersistence)").list();

请注意,我在子查询中使用了同一表的不同列。

但是执行时出现异常。异常消息是:

No data type for node: org.hibernate.hql.ast.tree.IdentNode 
\-[IDENT] IdentNode: 'column2' {originalText=column2}

如果需要,我也可以提供堆栈跟踪。

但是从堆栈跟踪中我感觉到,这不是编写子查询的方法,我遗漏了一些东西。

请告诉我此查询有什么问题。

谢谢!!

最佳答案

您需要提供表别名。然后就可以工作了

from TablePersistence table1 where table1.column1 not in (select table2.column2 from TablePersistence table2)

关于java - Hibernate:使用子查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329032/

相关文章:

java - 使用 do - while 循环进行阶乘。 num1 变量变得等于 0,但同时的条件是 num1>=1。这是如何运作的?

java - 在字符串数组中搜索子字符串的最有效方法

JavaFX 在 Canvas 上绘制 "static"线

java - 如何使用 class 属性映射 hibernate 中的类?

hadoop - Hive 中的 CRUD 操作

java - 使用 hsql 检索数据 - 多对一关系

java - 为什么我的代码从嵌套的 JSON 数组返回值 'null'

java - 具有完全限定类名的 HQL

grails - 使用位置参数时查询未返回结果

hibernate - 在 Hibernate 中使用注释的dynamicUpdate=true 不起作用