【问题标题】:Criteria hibernate inner join projection group byCriteria hibernate inner join projection group by
【发布时间】:2015-12-12 04:13:34
【问题描述】:

我在将此 SQL 转换为 Hibernate Criteria 时遇到了一些问题。我已经搜索了一段时间,但不知道如何做。

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;

这是我到目前为止所取得的成就。

criteria.setProjection(
         Projections.projectionList()
           .add(Projections.groupProperty("tableA_nr"))
           .add(Projections.max("tableA_status.id")));

提前致谢!

【问题讨论】:

    标签: java sql hibernate group-by projection


    【解决方案1】:

    不确定这是否有效,但提示您可以使用Detached Criteria 进行子查询。

    子查询

    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"));
    

    主要查询

    session.createCriteria(tableA_nr.class)
    .add( Subqueries.propertyIn("tableA_nr", status_nr_list) )
    .add( Subqueries.propertyIn("tableA_status", status_nr_list) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-19
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多