Sql Hibernate分离标准问题
我试图使用hibernate条件执行以下查询。但是,它并没有给我正确的结果 查询:Sql Hibernate分离标准问题,sql,hibernate,hibernate-criteria,detachedcriteria,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.createC
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.表A和表B是不同的吗?我用tableA生成了与TableB不同的示例,生成的查询如下:选择this_u.id作为id0_0_0,this_0.nombre作为nombre0_0,this_0.activo作为activo0_0_0来自prueba.Actividad this_0如果不存在,选择b_0.activo作为y0_0来自prueba.Cargo b_0,其中this_0.nombre=b_0.nombre和b_0.activo=?