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
- producer
- Entity
- QueryDSL
- Kubernetes
- offsetdatetime
- spring
- JPA
- consumer
- bean
- mirror maker2
- ECS
- AWS
- PAGING
- cd
- CI
- entity graph
- topic생성
- kafka
- Kotlin
- mysql
- API
- centos7
- git
- CodePipeline
- Spring Data JPA
- Spring JPA
- Streams
- transactionaleventlistener
- spring kafka
- K8s
Archives
- Today
- Total
Yebali
Spring Data JPA의 Query Creation 본문
Query Creation 이란?
Spring Data JPA의 쿼리 매소드 기능 중 하나로
인터페이스를 정의하면 자동으로 쿼리를 생성해주는 기능이다.
예시 Entity
@Entity
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
}
순수한 JPA
public List<Member> findByUsername(String username) {
return em.createQuery("select m from Member m where m.user = :username", Member.class)
.setParameter("username", username)
.getResultList();
}
직접 JPQL로 쿼리를 작성해 주어야 하고 parameter도 매핑해주어야 한다.
Spring Data JPA는 이렇게 쿼리를 만드는 과정을 대신해준다.
Spring Data JPA
//== 컬랙션 조회 ==//
List<Member> findListByUsername(String username);
//== 단건 조회 ==//
Member findMemberByUsername(String username);
위처럼 단순히 인터페이스에서 매서드만 선언해주면 메서드명을 보고 자동으로 쿼리를 만들어
Member를 조회할 수 있게 해 준다.
만약 'username'이 일치하고 13살 이상의 유저를 찾고 싶다면 아래처럼 하면 된다.
List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
이 기능은 엔티티의 필드 명이 변경되면 인터페이스에서 정의한 메서드 이름도 꼭 함께 변경해야 한다!
외의 자세한 기능은 Spring 공식 문서의 Query Creation 을 참고하면 된다.
'Spring' 카테고리의 다른 글
Spring Data JPA의 @Query 애너에티션 (0) | 2021.10.11 |
---|---|
Spring Data JPA의 Named Query (0) | 2021.10.11 |
Spring Data JPA를 이용한 CRUD (0) | 2021.10.11 |
Spring Data JPA란? (0) | 2021.10.11 |
Spring JPA의 OSIV (0) | 2021.10.11 |