Hibernate Criteria的一对多关系的最后记录

时间:2011-10-25 13:32:51

标签: hibernate hibernate-criteria

我需要获得最后一条记录以及one-to-many与Hibernate标准关系的主要记录。 Pseudo-Sql显示我想要执行的查询

  

表1(硕士)
  表2(详情)

Select *  
      from Table1 tab1, Table2  tab2 
              where tab2.tab1id == tab1.id 
              and tab2.date == (  select Max(date) 
                                    from table2 where table2.tab1id == tab1.id)

1 个答案:

答案 0 :(得分:0)

我做到了!!!

DetachedCriteria maxFecha = DetachedCriteria
.forClass(CambiosEstado.class, "cambio")
.setProjection(Projections.max("fecha"))
.add(Property.forName("cambio.practicasEst").eqProperty("cambio2.practicasEst"));  
Criteria criteria = this.getSession().createCriteria(
PracticasEst.class);
Criteria estadosCriteria = criteria.createCriteria(
"cambiosEstados", "cambio2");
estadosCriteria.add(Restrictions.eq("estados", estados));
estadosCriteria.add(Property.forName("fecha").eq(maxFecha));
return criteria.list();

大师班是具有CambiosEstado集合的PracticasEst。查询采用PracticaEst和最后一个CambiosEstado。 (Fecha是西班牙语的日期)。