[英]Criteria hibernate inner join projection group by
I`m having some trouble translating this SQL to Hibernate Criteria. 我在将此SQL转换为休眠条件时遇到麻烦。 I have seached it for some time, but couldnt get any ideas as how to do it. 我已经找到它了一段时间,但是却不知道该怎么做。
SELECT * FROM tableA a
INNER JOIN (
SELECT tableA_nr AS cod, max(tableA_status) as sit
FROM tableA
GROUP BY (tableA_nr)
) status_nr_list
ON a.tableA_nr = status_nr_list.cod and a.tableA_status = status_nr_list.sit
ORDER BY tableA_nr;
Here´s what I´ve accomplished so far. 到目前为止,这是我已经完成的工作。
criteria.setProjection(
Projections.projectionList()
.add(Projections.groupProperty("tableA_nr"))
.add(Projections.max("tableA_status.id")));
Thanks in advance! 提前致谢!
Not sure if this works but the hint is you can use Detached Criteria for subquery. 不知道这是否有效,但提示是您可以使用Detached Criteria进行子查询。
Sub query 子查询
DetachedCriteria status_nr_list = DetachedCriteria.forClass(tableA_nr.class, "tableA_nr");
status_nr_list.setProjection(Projections.max("tableA_status"));
status_nr_list.setProjection(Projections.property("tableA_nr"));
Main query 主要查询
session.createCriteria(tableA_nr.class)
.add( Subqueries.propertyIn("tableA_nr", status_nr_list) )
.add( Subqueries.propertyIn("tableA_status", status_nr_list) );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.