2011-02-07 4 views
1

내가는 최대 절전 모드는 자동,

즉, 제품

SELECT * FROM 전체 테이블을 선택하고하면 목록에서 비즈니스 도메인 객체로 캐스팅하지 않습니다 Hibernate는 나에게 Product 객체의 목록을 반환한다. 전 제품

에서 불과 그것의 부분 집합,

즉 선택 이름, 가격을 선택하고 때, Hibernate는 나에게이 목록에 캐스팅 할 수없는 개체의 목록을 반환 제품 개체를 즉시 구입할 수 있습니다. 그것을 Product 객체의리스트에 캐스트하려고하면, ClassCastException가 발생합니다.

@SuppressWarnings("unchecked") 
@Override 
public List<UserRoleAndProgramCategory> get(int roleId, int programCategoryId) { 
    String sHql; 
    String[] key; 
    Object[] value; 

    key = new String[] { "roleId", "programCategoryId" }; 
    value = new Integer[] { roleId, programCategoryId }; 

    sHql = "select distinct l.userId, l.userName, l.fullName, l.roleId, l.roleName, l.roleCode, l.programCategoryId, l.programCategoryCode, l.programCategoryDescription from " 
      + UserRoleAndProgramCategory.class.getName() 
      + " as l where roleName <> ' ' and roleCode not in ('CONTRACTOR', 'ADMIN') and programCategoryId = :programCategoryId and roleId = :roleId"; 

    return (List<UserRoleAndProgramCategory>) super.getQueryWithCache(sHql, key, value, false, false, false) 
      .getQueryResult(); 
} 

감사합니다. 내가 어디로 잘못 갔는지 알려주세요.

+0

(SQL 쿼리에 있지만, HQL은 동일하게 작동), 그 결과는 목록입니다 길이가 2 인 배열로 배열의 요소로 적절히 반환 될 수있는 요소에 대해 생각해보십시오 ... 첫 번째 위치가 요청 된 첫 번째 속성과 일치하고 두 번째 위치가 두 번째 속성과 일치 할 수 있습니다. 그러한 반환 유형 일 수 있습니까? Hrrrmmm? 해당 속성 유형의 Java 유형은 아마도? 쉽게 될 수 있습니까? " [link] https://forum.hibernate.org/viewtopic.php?f=1&t=935654&view=previous –

답변

1

the docs을 읽으십시오.

특정 속성을 선택하는 쿼리에서 개체 목록을 반환하려면 별칭을 콩 변환자를 사용해야합니다.

Example 내가 는 "당신은 쿼리 및 반환 클래스의 두 가지 속성을 말한다 말한다 Hibernate의 포럼에서이 발견

+0

고맙습니다. 나는 그것을 지금 시도 할 것이다. –

1
sHql = "select distinct new UserRoleAndProgramCategory(l.userId, l.userName, l.fullName, l.roleId, l.roleName, l.roleCode, l.programCategoryId, l.programCategoryCode, l.programCategoryDescription) from " 
      + UserRoleAndProgramCategory.class.getName() 
      + " as l where roleName <> ' ' and roleCode not in ('CONTRACTOR', 'ADMIN') and programCategoryId = :programCategoryId and roleId = :roleId"; 
관련 문제