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
- 알기쉬운 알고리즘
- insertion sort
- s
- 윤성우 열혈자료구조
- C 언어 코딩 도장
- stream
- 윤성우의 열혈 자료구조
- Algorithm
- datastructure
- Graph
- Stack
- JSON
- 이것이 자바다
- 메모리구조
- 이스케이프 문자
- C programming
- ㅅ
- 혼자 공부하는 C언어
- coding test
- R
- list 컬렉션
- Selection Sorting
- Serialization
- buffer
Archives
- Today
- Total
Engineering Note
[JPA] Spring Data JPA Query Method 네이밍 규칙 본문
Spring Data JPA Query Method
- 메서드명으로 쿼리 자동 생성
1. 단순 필드 조회
Entity:
@Entity
public class Member {
private Long id;
private String email; // 단순 필드
private String name;
}
Repository
// email 필드로 조회
Optional<Member> findByEmail(String email);
// → SELECT * FROM member WHERE email = ?
// name 필드로 조회
List<Member> findByName(String name);
// → SELECT * FROM member WHERE name = ?
'findBy필드'로 쿼리메서드를 작성하면, SELECT * FROM Entity(Table) WHERE 필드 = ? 형태로 쿼리가 생성된다.
2. 연관관계 필드 조회
@Entity
public class RefreshToken {
private Long id;
private String token;
@ManyToOne
@JoinColumn(name = "member_id")
private Member member; // ← 연관관계 필드
}
@Entity
public class Member {
private Long id; // ← Member의 id 필드
private String email;
}
RefreshToken에서 Member의 id로 token을 조회하고 싶으면 단순 필드 조회처럼 쿼리메서드를 작성하면 안되고,
findByMember_id(Long memberId); 라고 작성해야 한다. 이유는 RefreshToken 객체에 'memberId' 라는 필드가 없기 때문이다.
//RefreshTokenRepository
// token 정보 memberId 필드로 조회
List<RefreshToken> findByMember_id(Long memberId);
// → SELECT * FROM Refreshtoken WHERE member_id = ?
`_` (언더스코어)는 연관 엔티티 내부 필드로 들어가는 것을 의미
'Server > JPA ORM' 카테고리의 다른 글
| [JPA] Repository로 동시성 테스트하면 안 되는 이유 (0) | 2025.12.24 |
|---|---|
| [JPA] 지연로딩과 N+1문제해결, 실행 쿼리 비교 (0) | 2025.11.09 |
| [JPA] 컬렉션 지연로딩(Lazy Loading)으로 인한 N+1 문제 (0) | 2025.11.08 |
| [JPA] 연관관계 주인 (1) | 2025.10.10 |
| [JPA] 기본 키 매핑 방법 (0) | 2025.10.08 |
Comments
