2011-10-25 35 views
1

我需要獲取最後一條記錄和one-to-many與Hibernate標準關係的主要記錄。僞-SQL顯示查詢我想執行一對多關係的最後記錄Hibernate標準

表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) 
+0

你想考慮使用HQL而不是標準嗎?它應該很簡單。 – ManuPK

回答

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。 (西班牙文中的日期是西班牙文版)。

相關問題