Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Kubernetes
- topic생성
- entity graph
- mirror maker2
- kafka
- git
- JPA
- CodePipeline
- centos7
- Kotlin
- Spring JPA
- consumer
- API
- mysql
- CI
- Spring Data JPA
- producer
- AWS
- Entity
- spring kafka
- ECS
- QueryDSL
- spring
- K8s
- cd
- offsetdatetime
- transactionaleventlistener
- PAGING
- Streams
- bean
Archives
- Today
- Total
Yebali
Spring Data JPA의 Named Query 본문
Named Query란?
네임드 쿼리란 말 그대로 이름을 붙여놓은 쿼리를 말한다.
사전에 쿼리에 이름을 붙여놓고 사용할 때, 쿼리의 이름을 사용하여 메서드를 구현하는 기능이다.
예시 Entity
Named Query를 사용하기 위해서는 @NamedQuery 애너테이션을 사용하여 Entity에 query를 선언해주어야 한다.
@Entity
@NamedQuery(
name="Member.findByUsername",
query="select m from Member m where m.username = :username"
)
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
Repository
Entity에 선언한 Named Query를 Repository에서 아래와 같이 사용하면 된다.
@Query(name = "Member.findByUsername")
List<Member> findByUsername(@Param("username") String username);
참고로 "@Query(name = "Member.findByUsername")"부분을 주석 처리해도 동작한다.
Spring Data JPA는 "Query Creation" 기능을 사용하기 전에 "Named Query"를 먼저 찾기 때문이다.
"Query Creation"기능에 대해 알고 싶다면 아래 링크를 참고하자.
Query Creation이란?
Named Query는 실무에서는 잘 사용하지 않는다고 한다.
쿼리를 직접 정의할 일이 있다면 @Query 기능을 사용하도록 하자.
'Spring' 카테고리의 다른 글
Spring Data JPA의 반환 타입 (0) | 2021.10.11 |
---|---|
Spring Data JPA의 @Query 애너에티션 (0) | 2021.10.11 |
Spring Data JPA의 Query Creation (0) | 2021.10.11 |
Spring Data JPA를 이용한 CRUD (0) | 2021.10.11 |
Spring Data JPA란? (0) | 2021.10.11 |