本文介绍了作为条件查询的一部分,Hibernate分离查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您可以请java专家帮我编写分离查询作为以下SQL语句的条件查询的一部分。选择A. * FROM AETABLE A 不存在(选择entryid FROM AETABLE B 其中B.classpk = A.classpk 和B.userid = A.userid 和B.modifiedDate> A.modifiedDate )和userid = 10146
解决方案
您需要编写相关子查询。假设属性/类名匹配上面的列/表名:
DetachedCriteria子查询= DetachedCriteria.forClass(AETable.class,b ) .add(Property.forName(b.classpk)。eqProperty(a.classpk)) .add(Property.forName(b.userid)。eqProperty(a 。)) .add(Property.forName(b.modifiedDate)。gtProperty(a.modifiedDate)); Criteria criteria = session.createCriteria(AETable.class,a) .add(Property.forName(userid)。eq(new Integer(10146))) .add(Subqueries.notExists(subquery);
java experts can you please help me write detached queries as a part of the criteria query for the following SQL statement.
select A.* FROM AETABLE A where not exists ( select entryid FROM AETABLE B where B.classpk = A.classpk and B.userid = A.userid and B.modifiedDate > A.modifiedDate ) and userid = 10146解决方案
You need to write a correlated subquery. Assuming property / class names match column / table names above:
DetachedCriteria subquery = DetachedCriteria.forClass(AETable.class, "b") .add(Property.forName("b.classpk").eqProperty("a.classpk")) .add(Property.forName("b.userid").eqProperty("a.userid")) .add(Property.forName("b.modifiedDate").gtProperty("a.modifiedDate")); Criteria criteria = session.createCriteria(AETable.class, "a") .add(Property.forName("userid").eq(new Integer(10146))) .add(Subqueries.notExists(subquery);
更多推荐
作为条件查询的一部分,Hibernate分离查询
发布评论