2012-04-26 99 views
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} 

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

但是,我觉得从堆栈跟踪看,这不是写一个子查询的方式,我缺少一些东西。

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

谢谢!

回答

3

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

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

完美!谢谢!! – kanishk 2012-04-26 08:06:28