반응형

JpaRepository를 상속받은 후, @Query라는 Annotation을 이용해서 custom query를 작성 가능한데,

이 Annotation의 property중 nativeQuery라는 게 있다.


커스터마이징한 쿼리의 결과가 JpaRepository 상속 시 선언된 Object의 클래스형과 동일하거나 해당 Object에 포함된 컬럼이라면,

@Query에 커스텀 쿼리만 작성을 하면 되지만, 쿼리에서 컬럼에 alias를 걸어서 이리저리 지지고 볶는 경우에는 분명히 리턴 값이 달라지게 된다.


이런 경우에는 nativeQuery를 true로 잡아주지 않으면, 서버가 올라가면서 테이블이 매핑되지 않았다고 뭐라뭐라한다.


여기까지하면 서버 올라갈때 문제는 없는데, 직접 쿼리 실행할 때 주의할 점이 있는데..

@Query에 value로 쿼리를 넣을 때 쿼리가 길면 정리하고 싶어지게 마련인데.. 띄어쓰기 같은거 다 체크하는거 같음.. 왠만하면 보기싫어도 그냥 쭉 길게 쓰는걸 추천.. (hsqldb에서만 그런걸지도;;)


전반적으로 jpa가 편하긴 한데, 국내에 사용하는 사람이 별로 없어서인지 몰라도 예외상황이 발생하면, 자료 찾기가 너무 힘들다; 

반응형

'개발 > JPA, Hibernate' 카테고리의 다른 글

[Hibernate] Hibernate Validator  (0) 2016.06.11
[Hibernate] Custom Validator  (0) 2016.06.11
[Hibernate] ddl-auto  (0) 2016.06.11
[Hibernate] Entity 선언 시 주의점  (0) 2016.06.11
[Spring Data Jpa] limit와 ordering  (1) 2016.06.11
,