2012-11-01 5 views
-1

전 포럼에서 검색했습니다. 거의 모든 대답은 이것에 온다. 그러나 도움이되지 않았다. 내 DAO에서 아래의 쿼리가 있지만 작동하지 않는 이유를 이해하지 못합니까? HQL DISTINCT가 작동하지 않습니다.

public List<RwTac> findAll(){ 
     String sql = "select distinct v from RwTac v " + 
        "order by v.vendor" ; 
     Query query = sessionFactory.getCurrentSession().createQuery(sql); 
     return query.list(); 
    } 

감사합니다 :

여기 내 완벽한 방법입니다.

+0

는 RwTac 테이블에 V라는 열이 있는가 필요가 없다? – case1352

+0

아니오; 쿼리가 정상적으로 작동하고 여기서 "v"라고하는 벤더를 가져 오지만 그들은 고유하지 않습니다 ... – user1790066

+4

엔티티에서 'equals' 및'hashCode'를 구현 했습니까? – SJuan76

답변

0

내가 원하는 결과가 정확히 무엇인지 알 수 없습니다. 당신의 HQL에서

당신이 적어도 하나의 열에서 다른 모든 행거야

"select distinct v from RwTac v order by v.vendor" 

를 선택 - (대부분의 경우이 테이블의 모든 행을하게 될 테이블이없는 경우를 제외하고 고유 한 키와 완전한 두 배가 있음).

당신은 공급 업체 목록을 원한다면

, 두 번 목록에 공급 업체, 당신이 선택

"select distinct v.vendor from RwTac v order by v.vendor"