基準を使用してこの SQL を取得したい
select A.evaluated_employee_id, A.created_date, A.total_grade
from employee_performance_assessment A
join
( select evaluated_employee_id, max(created_date) as maxdate, status, total_grade
from employee_performance_assessment
group by evaluated_employee_id
) B on A.evaluated_employee_id = B.evaluated_employee_id and A.created_date = B.maxDate
私は次のことをしています
DetachedCriteria dc = DetachedCriteria.forClass(EmployeePerformanceAssessmentBO.class);
dc.createAlias("evaluatedEmployee", "e");
dc.setProjection(Projections.projectionList().add(Projections.max("createdDate"))
.add(Projections.groupProperty("evaluatedEmployee")));
dc.addOrder(Order.asc("e.lastName")).addOrder(Order.asc("createdDate"));
dc.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
return getDAOHibernateTemplate().findByCriteria(dc);
しかし、これは WHERE 句内でサブクエリを生成します 同じテーブル (クラス) から 2 つの基準を結合する方法を考えていますか?