문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
java:jpa:nativequery [2015/02/08 15:53] kwon37xi |
java:jpa:nativequery [2021/01/05 14:38] (현재) kwon37xi [in 파라미터 매핑] |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== JPA and Native Query (SQL) ====== | ====== JPA and Native Query (SQL) ====== | ||
| - | * [[http:// | + | * [[https:// |
| + | * [[java: | ||
| + | |||
| + | ===== NativeSQL 결과 암묵적 Entity 매핑 ===== | ||
| + | * Native Query 결과를 entity 로 받는 방법으로 암묵적으로 할수도 있다. | ||
| + | * '' | ||
| + | |||
| + | <code java> | ||
| + | Book b = (Book) em.createNativeQuery(" | ||
| + | </ | ||
| + | |||
| + | ===== NativeSQL 결과 명시적 Entity 매핑 : ResultSetMapping ===== | ||
| + | * 단일 엔티티에 대한 Native Query 실행은 매핑이 필요없다. | ||
| + | * 다중 Entity를 결과로 받는 Native Query는 | ||
| + | * '' | ||
| * [[http:// | * [[http:// | ||
| + | * NativeQuery Result Set Mapping은 **모든 필드를 명백히 기술해서 매핑해 주자.** 그렇지 않으면 컬럼의 변경이 발생하거나 두 개 이상 엔티티에 대한 매핑시 동일 컬럼 이름 존재시 심각한 오류가 발생할 수 있다. | ||
| + | * 두 개 이상의 엔티티를 로딩하는데 그 것들이 서로 연관 관계일 경우 이미 연관 관계가 자동으로 채워진 상태의 엔티티가 생성된다. 이미 Native Query 결과 객체(result set mapping)내에 연관에 관한 데이터 매핑이 있으면 다시 쿼리를 날리지 않는다. | ||
| + | * 애노테이션보다는 [[java: | ||
| + | |||
| + | ==== XML 예제 ==== | ||
| + | <code xml> | ||
| + | <?xml version=" | ||
| + | < | ||
| + | xmlns=" | ||
| + | xmlns: | ||
| + | xsi: | ||
| + | http:// | ||
| + | http:// | ||
| + | version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <!-- Author writer, Long writerId 매핑이 함께 존재할경우 --> | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== 필드 매핑시 주의할 점 ==== | ||
| + | * '' | ||
| + | * 예를들어 '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== in 파라미터 매핑 ==== | ||
| + | * JPA (2.1 에서 테스트) 일반 Query / Native Query 모두 '' | ||
| + | * 단, 파라미터 매핑시 < | ||
| + | |||
| + | ===== 참고 ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||