JpaRepository 에서 사용할 메서드 제한하기
JpaRepository 는 기본적으로 모든 기능을 제공하기 때문에 리스크가 있을 수 있다.
예를 들어 Optional<User> findByPassword(String password); 메서드처럼 user의 password를 조회하는 기능을 제한할 필요가 있다.
@RepositoryDefinition (실용적인 관점에서 사용)
@RepositoryDefinition 어노테이션을 붙이면 BeanDefinition 에 직접 접근하여 프로그래밍으로 주입받을 구현체 메서드들을 지정해서 요청할 수 있다.
@RepositoryDefinition(domainClass = User.class, idClass = Long.class)
public interface UserRepository {
Optional<User> findByEmail(String email);
Optional<User> findById(Long id);
}
@RepositoryDefinition는 특정 리포지토리 하나만 편리하게 사용할 목적으로,
Repository.class는 @NoRepositoryBean을 활용해서 여러 곳에서 사용할 목적으로 사용할 수 있다.
'Spring' 카테고리의 다른 글
| Spring Day 29 : 페이지 반환 타입 (1) | 2024.03.07 |
|---|---|
| Spring Day 28 : 영속성 컨텍스트 특징 (0) | 2024.03.06 |
| Spring Day 26 : 코드 리팩토링 (팔로우 기능) (0) | 2024.03.04 |
| Spring Day 25 : 팔로우 기능 구현 (0) | 2024.02.29 |
| Spring Day 24 : SSE (Server-Sent Event) (0) | 2024.02.27 |