1
의 가장 최근의 날짜 필드가 나는 상태의 컬렉션 연구소가 여기 내 간단 클래스입니다. MYSQL이 잘 작동 :최대 절전 모드 기준 컬렉션
SELECT ls.* FROM labs_states les INNER JOIN
(SELECT idLab, idLabState, MAX(date) AS lastDate FROM labs_states GROUP BY idLab)
groupedLabs ON les.idLab = groupedLabs.idLab AND les.date = groupedLabs.lastDate
편집 : 탐색 방법 :
public List<Labs> search(LabSearch labSearch) {
SessionFactory sessionFactory = hibernateTemplate.getSessionFactory();
Session session = sessionFactory.openSession();
Criteria criteria = session.createCriteria(Lab.class);
criteria.add(Restrictions.like("name", "%" + labSearch.getName() + "%"));
if(labSearch.getState() != null){
criteria.createCriteria("states").add(Restrictions.eq("state", labSearch.getState())).addOrder(Order.asc("date")).list().get(0);
return (List<Lab>) criteria.list();
}
나는 기준이 작업을 수행하기 위해, 또는있을 경우 다른 방법은 어떻게 nkow하지 않는
감사
덕분에 그러나 당신이 언급 한 바와 같이, 나는 특정 상태를 가진 모든 실험실이 필요합니다. 네이티브 SQL을 사용하여 해결 한 다음 엔티티 Labs에 추가했습니다. 최적 일지는 모릅니다. – grteibo
당신은 마지막 labstate가 필요하거나 상태 객체의 이름 만 필요합니까? – Firo
검색 기준을 충족하는 연구소 목록이 필요하다면 Lab.getState()를 사용하여 상태를 가져올 수 있습니다. 그러나 내가 국가별로 검색을한다면 각 실험실의 현재 상태를 검색하면됩니다. – grteibo