본문 바로가기
개념정복💫/스프링 Spring 정복

JPA 메서드 네이밍 & 반환 타입

by 옹쑥이 2025. 2. 25.

Spring Data JPA는 메서드 이름만으로 쿼리를 자동으로 생성해주는 기능을 제공합니다.
findByXxx, readByXxx, countByXxx처럼 메서드 이름을 규칙에 맞게 설정하면 편리하게 DB 접근이 가능.


1. findByTagNo

  • 역할: 특정 tagNo 값을 가진 여러 개 태그 데이터 조회
  • 반환 타입: List<TagsEntity>
  • 예시:
public interface TagsRepository extends JpaRepository<TagsEntity, Long> {
    List<TagsEntity> findByTagNo(Long tagNo);
}
  • 주의: DB에서 tagNo가 유일(unique)하지 않다면, 여러 개의 엔티티가 반환될 수 있습니다.

2. getTagById

  • 역할: 단일 태그를 조회할 때 사용하는 서비스 레이어 메서드
  • 내부적으로 findById 등을 사용하여 Optional<TagsEntity> 반환
  • 예시:
@Service
public class TagsService {
    private final TagsRepository tagsRepository;

    public TagsService(TagsRepository tagsRepository) {
        this.tagsRepository = tagsRepository;
    }

    public Optional<TagsEntity> getTagById(Long id) {
        return tagsRepository.findById(id);
    }
}
  • 장점:
    • 결과가 없으면 Optional.empty()를 반환해, 예외 처리 등에 유연하게 대응 가능

Spring Data JPA의 쿼리 메서드는 간단한 조회에서 강력한 생산성을 발휘.
복잡한 쿼리는 @Query나 QueryDSL 등을 활용해 맞춤형 JPQL로 작성하는 것이 더 적합할 수 있음.