본문 바로가기
JPA

최범균 Spring Data JPA 기초

by 문자메일 2024. 9. 25.

 

Spring Data JPA 시작하기

 

https://www.youtube.com/watch?v=1Q3Qtd5HZy4

 

 

사용법

 

  • spring-boot-starter-data-jpa 의존
  • 스프링 부트 설정
  • 엔티티 단위로 Repository 인터페이스를 상속 받은 인터페이스 생성
    • 또는 그 하위 인터페이스
  • 지정한 규칙에 맞게 메서드 추가
  • 필요한 곳에 해당 인터페이스 타입을 주입해서 사용

 

 

Spring Data JPA 02 리포지터리 메서드 작성 규칙

 

식별자로 엔티티 조회 메서드

findById

  • T findById(ID id)
    • 없으면 null
  • Optional<T> findById(ID id)
    • 없으면 empty Optional

public interface UserRepository extends Repository<User, String>{

  Optional<User> findById(String email);

}

 

 

엔티티 삭제 메서드

delete

  • void delete(T entity)
  • void deleteById(ID id)

삭제할 대상이 존재하지 않으면 익셉션 발생

 

 

Optional<User> userOpt = userRepository.findById("email2@email.com");

userOpt.ifPresent(user -> {

    userRepository.delete(user);

});

 

 

엔티티 저장 메서드

save

  • void save(T entity)
  • T save(T entity)

 

User savedUser = userRepository.save(new User(...));

 

 

 

특정 조건으로 찾기

findBy프로퍼티(값) : 프로퍼티가 특정 값인 대상

  • List<User> findByName(String name)
  • List<Hotel> findByGradeAndName(Grade g, String name)

조건 비교

  • List<User> findByNameLike(String keyword)
  • List<User> findByCreatedAtAfter(LocalDateTime time)
  • List<Hotel> findByYearBetween(int from, int to)
  • LessThan, IsNull, Containing, In, ... 스프링 레퍼런스 문서 참고

findAll() : 모두 조회

 

 

댓글