Hibernate分离标准问题

时间:2012-05-23 16:04:41

标签: sql hibernate hibernate-criteria detachedcriteria

我正在尝试使用hibernate条件执行以下查询。但是,它没有给我正确的结果。

查询:

SELECT * 
FROM   TableA a 
WHERE  NOT EXISTS (SELECT * 
               FROM   TableB b 
               WHERE  b.col1 = a.col1 
                      AND b.flag = 'Y');

休眠:

Criteria criteria = session.createCriteria(TableA.class, "a");
DetachedCriteria dc = DetachedCriteria.forClass(TableB.class, "b");
dc.add(Property.forName("b.col1").eqProperty("a.col1"));

dc.add(Restrictions.eq("b.flag","Y"));
dc.setProjection(Property.forName("b.col1"));

criteria.add(Subqueries.notExists(dc));

它正在生成的查询是 -

select * from TableA a where not exists (select b.col1 from TableB b where **b.col1=b.col1** and b.flag='Y');

在这里,我不确定为什么将b.col1与b.col1进行比较。

有人可以帮忙解决这个问题。提前谢谢。

- 的Teja。

0 个答案:

没有答案