Я сделал это !!!
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();
Мастер-класс - PracticasEst, в котором есть коллекция CambiosEstado.запрос принимает PracticaEst и последний CambiosEstado.(Fecha это дата на испанском языке).