JPARepository - 메소드 커스텀하기

·2023년 8월 6일
0

프로젝트 공부

목록 보기
27/33

JPARepository는 기본 메소드 findById(), findAll ... 뿐만 아니라 커스텀을 통해 Repository를 이용할 수 있다.

List<Comment> findAllByPostId(Long post_id); 해당 구문을 보면 해석해 보면 findAll (comment) 전부 찾아볼건데 postId로 찾는다는 거다. 이렇게만 작성해주면 JPA가 알아서 SQL문을 생성해준다.

커스텀을 생성하기 위한 몇가지 생성 규칙

팁) 컬럼명이나 해당 개체의 필드명들은 파스칼로 적어주는 것이 좋다

Method

method기능
save()레코드 저장 (insert, update)
findOne()primary key로 레코드 한건 찾기
findAll()전체 레코드 불러오기. 정렬(sort), 페이징(pageable) 가능
count()레코드 갯수
delete()레코드 삭제

Keyword

메서드 이름 키워드샘플설명
AndfindByEmailAndUserId(String email, String userId)여러필드를 and 로 검색
OrfindByEmailOrUserId(String email, String userId)여러필드를 or 로 검색
BetweenfindByCreatedAtBetween(Date fromDate, Date toDate)필드의 두 값 사이에 있는 항목 검색
LessThanfindByAgeGraterThanEqual(int age)작은 항목 검색
GreaterThanEqualfindByAgeGraterThanEqual(int age)크거나 같은 항목 검색
LikefindByNameLike(String name)like 검색
IsNullfindByJobIsNull()null 인 항목 검색
InfindByJob(String … jobs)여러 값중에 하나인 항목 검색
OrderByfindByEmailOrderByNameAsc(String email)검색 결과를 정렬하여 전달

쿼리문을 이용한 커스텀

SQL문이 복잡해서 메소드 이름만으로는 해결이 안될 때, 직접 쿼리하는 방법도 있다.

 public interface UserRepository extends JpaRepository<User, Long> {

  @Query("select u from User u where u.emailAddress = ?1")
  User findByEmailAddress(String emailAddress);
}

참고
[Spring] Spring Data JPA 기본 사용법 ( JpaRepository )

profile
개발자가 되고싶은 낭랑 24세

1개의 댓글

comment-user-thumbnail
2023년 8월 6일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기

관련 채용 정보