有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java选择具有最大日期休眠的行

我需要编写一个条件查询,用于选择具有最大日期的行:

Criteria criteria;

//getting criteria

criteria.add(Restrictions.sqlRestriction("{alias}.date = (__QUERY_FOR_MAX_DATE__)"));

是否可以避免直接编写sqlRestriction,而只使用条件查询

我的意思是应用一些投影或类似的东西。。。没有显式地编写sql限制


共 (1) 个答案

  1. # 1 楼答案

    DetachedCriteria innerCriteria = DetachedCriteria.forClass(ClassName.class, "inner")
                                      .setProjection(Projections.projectionList().add(Projections.max("inner.dateColumnName")));
    
    Criteria crit = session.createCriteria(ClassName.class, "outer");
    crit.add(Subqueries.propertyEq("outer.dateColumnName", innerCriteria));