作为条件查询的一部分,Hibernate分离查询 [英] Hibernate detached queries as a part of the criteria query
本文介绍了作为条件查询的一部分,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分离查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文