0

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

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}

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

但是从查看堆栈跟踪我的感觉是,这不是编写子查询的方式,我错过了一些东西。

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

谢谢!!

4

1 回答 1

3

您需要提供表别名。然后它会工作

from TablePersistence table1 where table1.column1 not in (select table2.column2 from TablePersistence table2)
于 2012-04-26T07:36:51.087 回答