즉, 제품
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(); }
감사합니다. 내가 어디로 잘못 갔는지 알려주세요.
(SQL 쿼리에 있지만, HQL은 동일하게 작동), 그 결과는 목록입니다 길이가 2 인 배열로 배열의 요소로 적절히 반환 될 수있는 요소에 대해 생각해보십시오 ... 첫 번째 위치가 요청 된 첫 번째 속성과 일치하고 두 번째 위치가 두 번째 속성과 일치 할 수 있습니다. 그러한 반환 유형 일 수 있습니까? Hrrrmmm? 해당 속성 유형의 Java 유형은 아마도? 쉽게 될 수 있습니까? " [link] https://forum.hibernate.org/viewtopic.php?f=1&t=935654&view=previous –