Hibernate:使用子查询时出错

时间:2012-04-26 07:32:00

标签: 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}

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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