최근에 Spring 4.3.9에서 최대 절전 모드 3.5에서 4.3.11로 업그레이드했다. 업그레이드하기 전에 모든 것이 잘 동작했다. 업그레이드 후에이 오류가 발생합니다.Hibernate 4는 네이티브 SQL 질의를위한 null 객체의리스트를 리턴한다.
환경 : 자바 8 톰캣 7.0.23, 최대 절전 모드 4.3.11, 봄 4.3.9, MSSQL 서버 2008,
최대 절전 모드를 통해 다음과 같은 SQL 쿼리를 실행하는 동안, 우리는 목록에서 올바른 크기의 null 객체 목록을 가져 오지만 객체는 null입니다. 널 objects.I의 결과 목록에서String sqlQuery="select DISTINCT(HIERARCHY_ID) from BASETYPE_HIERARCHY_MAPPING where BASETYPE_ID IN "
+ "(select BASETYPE_ID from BASETYPE_GROUP_MAPPING where GROUP_ID IN "
+ "(select GROUP_ID from USER_GROUP_MAPPING where USER_ID=(select ID from USER where USERID=:userId)))";
Query query = session.createSQLQuery(sqlQuery);
query.setParameter("userId", userId);
List<String> typeId = query.list();
이 (솔루션 매핑 실수) HQL에 대한 문제의 유사한 유형을 발견 :
select DISTINCT(HIERARCHY_ID) from BASETYPE_HIERARCHY_MAPPING
where BASETYPE_ID IN (select BASETYPE_ID from BASETYPE_GROUP_MAPPING
where GROUP_ID IN (select GROUP_ID from USER_GROUP_MAPPING where USER_ID like(select ID from USER where USERID='7')))
자바 코드 : 쿼리
하지만 그것의 간단한 SQL 쿼리.
유사한 문제 참조 링크 :받지에서 당신이 열이 여기에 매핑하기 때문에 Hibernate returns list of nulls although executed SQL returns values
당신은 SQL 대신 HQL을 사용한다고 말하고 있지만, 최대 절전 모드에서는 SQL 쿼리를 실행하고 목록 결과를 얻을 수 있습니다. –