2013-05-31 2 views
1

학교 테이블에 외래 키가있는 클래스 룸 테이블이 있습니다. 나는 capaties가 40이고 학교 이름이 "보기"인 교실을 얻고 싶습니다. 여기 내 일반적인 getAll 메소드가 있습니다. 이 메서드를 수정하여 2 개의 테이블을 조인하고 싶습니다. 문제는 그 방법이 여전히 범용으로 남아 있어야한다는 것입니다.최대 절전 모드 기준 쿼리를 사용하여 테이블을 조인하는 방법

public <T> List<T> getAll(T genericEntity) { 
    Criteria criteria = getCurrentSession().createCriteria(genericEntity.getClass()); 
    criteria.add(Example.create(genericEntity)); 
    return criteria.list(); 
} 
+0

n은 조인은 유전자 기능을 원하는?, 일반 남아 또는 구체적으로 2 조인?, 매개 변수는 무엇입니까?, 당신은 모든 것을 위해 일종의 슈퍼 DAO를 만들려고합니까? – Ziul

답변

1

당신은 매개 변수 목록에 두 개체를 추가해야합니다

public <T,U> List<T> getAll(T genericEntity1, U genericEntity2) { 
    Criteria criteria = getCurrentSession() 
     .createCriteria(genericEntity1.getClass()).add(Example.create(genericEntity1)) 
     .createCriteria(genericEntity2.getClass()).add(Example.create(genericEntity2)); 
    return criteria.list(); 
} 

당신은 다음과 같은 방법으로 호출 할 수 있습니다 :

getAll(classroom, school);