2012-09-30 4 views
1

2 개의 클래스가 있습니다. 1 등석 차량에는 승객 명단이 있습니다. 나는 하나의 승객이있는 차를 반환 할 최대 절전 기준이 필요하다. 그래서 아래 정말 일을 못해 그러나이목록 쿼리의 최대 절전 모드

class Car { 

    @Id 
    private Long id; 
    @OneToMany 
    private List<Passenger> passengers; 
} 

추천하고 최대 절전 모드 클래스

@Override 
public Car retrieve(Passenger passenger) { 
    Criteria criteria = super.createCriteria(); 
    criteria.add(Restrictions.eq("passengers", passenger)); 
    return (Car ) criteria.uniqueResult(); 
} 

뭔가. 따라서 제안 방법이 무엇입니까?

답변

2

여기에 Passenger 테이블이있는 Car 테이블을 조건부 API의 별칭으로 추가해야합니다. 나는 승객은 차에 한 번 나타날 수 있다고 생각, 그래서 Set<Passenger> 대신 List<Passenger> 선호 :

@Override 
public Car retrieve(Passenger passenger) { 
    Criteria criteria = super.createCriteria(); 
    criteria.createAlias("passengers", "p"); 
    criteria.add(Restrictions.eq("p.id", passenger.getId())); 
    return (Car) criteria.uniqueResult(); 
} 

또 다른 팁 : 다음을 시도해야합니다.

+1

정확하고 빠른 응답 (팁은 물론)을위한 Tnx는이를 염두에 두어야합니다. 건배 –