반응형
Named Query란?
Entity에 @NamedQuery 애노테이션을 부여해서 이 쿼리를 이름으로 불러서 사용할 수 있다.
쉽게 말하면 미리 이름을 부여해서 재활용 할 수 있는 JPQL이다.
이는 동적 쿼리는 불가능하며 정적 쿼리만 가능하다.
애플리케이션 로딩 시점에 이 쿼리를 JPA가 미리 파싱해서 캐싱을 해놓고, 로딩 시점에 쿼리 검증이 가능하다.
사용법은 Entity 에서 사용을 하고 아래와 같다.
..이상 생략 @Entity @NamedQuery( name = "User.findByName", query = "SELECT a FROM USER AS a WHERE a.name = :name" ) public class User { ..이하 생략 |
..이상 생략 List<User> users = em.createNamedQuery("User.findByName", User.class) .setParameter("name", "thenicesj") .getResultList(); |
이런식으로 사용이 가능하고 만약 Query에서 Syntax 등의 에러가 발생할 경우
Runtime이 아닌 Compile 단계에서 잡을수 있다.(둘의 비교는 참고 포스팅 참고)
참고 포스팅
https://thenicesj.tistory.com/834
반응형
'IT > Java' 카테고리의 다른 글
Spring Batch (part 2. 배치 종류 설명) (21) | 2024.05.19 |
---|---|
[Error] Request header is too large. 에러 (13) | 2024.05.17 |
Spring Cloud에 대해 (16) | 2024.05.05 |
RestTemplate 에 대해서 (21) | 2024.05.03 |
Apache HttpClient 와 CloseableHttpClient 차이점 +(DefaultHttpClient / HttpClientBuilder) (29) | 2024.05.01 |
댓글