2012-12-20 2 views
0

JPQL 연산자를 사용하여 DTO 안에 쿼리 결과를 매핑 할 수 있습니까? 기본 쿼리가있는 JPQL NEW 연산자?

는이 코드 테스트 :

Query query = em.createNativeQuery("SELECT NEW com.sim.dtos.entities.FreeLocation(t1.galaxie, t1.ss, t1.position) FROM ..."); 

List<FreeLocation> l = query.getResultList(); 

을하지만 예외가 있습니다

[# | 2012-12-20T12 : 9 : 21.203 + 0100 | 경고 | glassfish3.1.2 | 모두 javax. StandardWrapperValve [Faces Servlet] : PWC1406 : 서블릿 Faces 서블릿에 대한 Servlet.service()가 예외를 던졌습니다. org.postgresql .util.PSQLException : 오류 : 구문 오류가 발생했습니다. » 포지션 : 15

네이티브 쿼리로 NEW 연산자를 사용할 수 있습니까?

답변

1

네이티브 쿼리는 정의상 SQL 쿼리입니다. 특정 데이터베이스에 유효한 SQL을 포함해야합니다.

쿼리는 List<Object[]>을 반환하며 목록을 반복하고 각 Object[] 배열에 대해 FreeLocation의 새 인스턴스를 만드는 것이 쉽습니다.

+0

감사합니다. JB. 그래서 네이티브 질의를 위해 new 생성자 연산자를 사용할 수 없습니까? 이클립스에서는'List list = query.getResultList();'->'타입 안전성 : List 타입의 표현식은 List '에 부합하는 체크되지 않은 변환이 필요하다. 이게 정상인가? 'List '을 사용하여 경고를 제거하지만 자동 캐스팅을 잃습니다. –

+0

예, 메소드가 원시 목록을 반환하기 때문에 정상입니다. 설명서에는 Object []가 들어 있습니다. 그냥 경고를 무시하십시오 : 그것은 피할 수없는 일입니다. –

+0

고맙습니다. 내 목록에 @SuppressWarnings ("확인되지 않음")을 사용합니다. –