JPA: 기본 쿼리 결과를 POJO로 변환
쿼리에서 기본 쿼리 결과를 POJO로 변환해야 한다고 표현하셨습니다. 5개의 필드를 포함하는 POJO 클래스 컬렉션입니다. JPA에 결과를 POJO 객체 목록으로 직접 캐스팅할 수 있는 방법이 있는지 생각해 보셨을 것입니다.
Reflection을 사용한 사용자 정의 객체 매핑
JPA 도입 이전에 가능한 솔루션 중 하나 2.1에서는 리플렉션을 사용하여 결과를 수동으로 매핑했습니다. 여기에는 기본 쿼리 결과와 동일한 수 및 유형의 필드를 사용하여 POJO 생성자를 생성하는 메서드를 정의하고 쿼리에서 반환된 튜플 배열을 생성자에 매핑하는 작업이 포함되었습니다.
JPA 2.1에서 @SqlResultSetMapping 사용
JPA 2.1에는 @SqlResultSetMapping 주석이 도입되었습니다. 엔터티 또는 XML 파일의 결과 집합에 대한 매핑입니다. 이 매핑은 대상 클래스와 해당 속성에 해당하는 결과 집합의 열을 정의합니다. 이 매핑을 사용하면 Query 개체를 생성하고 매핑 이름을 지정하여 결과를 POJO 개체 목록으로 직접 캐스팅할 수 있습니다.
XML 매핑
엔티티 클래스에서 주석을 유지하려는 경우 META-INF/orm.xml 파일에서 매핑을 정의할 수 있습니다. 여기에는 result-set-mapping 속성을 사용하여 명명된 네이티브 쿼리 요소를 생성하고 대상 클래스 및 열 이름 매핑을 지정하는 생성자 결과를 사용하여 sql-result-set-mapping 요소를 정의하는 작업이 포함됩니다.
매핑된 엔터티(JPA 2.0)
JPA 2.0에서는 기본 쿼리 매핑을 허용하지 않습니다. POJO 클래스는 엔터티에 대한 매핑을 지원합니다. 이를 위해서는 POJO에 엔터티로 주석을 달고 해당 속성을 데이터베이스 열에 매핑해야 합니다.
결론
기본 쿼리 결과를 매핑하기 위해 선택하는 접근 방식 POJO 클래스는 사용 중인 JPA 버전과 주석 또는 XML 구성에 대한 선호도에 따라 다릅니다. 제시된 옵션은 다양한 수준의 유연성과 편의성을 제공하므로 프로젝트 요구 사항에 가장 적합한 옵션을 선택할 수 있습니다.
위 내용은 JPA에서 기본 쿼리 결과를 POJO로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!