[삽질 피하기] JpaRepository 규칙에 맞는 메서드

2021. 4. 21. 21:21삽질 피하기

1. JpaRepository 규칙에 맞는 메서드

1) 기본

메서드 설명
save() 레코드를 저장한다. (insert, update)
saveAll() 모든 레코드를 저장한다.
findOne() PK로 레코드 한건을 찾는다.
findAll() 전체 레코드를 불러온다. (정렬 Sort, 페이징 Pageable 가능)
count() 레코드 갯수를 가져온다.
delete() 레코드를 삭제한다.
findBy로 시작 쿼리를 요청하는 메서드임을 명시한다.
countBy로 시작 쿼리 결과 레코드 수를 요청하는 메서드임을 명시한다.

2) 추가 기능

메서드 키워드 예시 설명
And findByEmailAndUserId(String email, String userId) 여러 필드를 and로 검색한다.
Or findByEmailOrUserId(String email, String userId) 여러 필드를 or로 검색한다.
Between findByCreatedBetween(Date fromDate, Date toDate) 필드의 두 값 사이에 있는 항목을 검색한다.
LessThan findByAgeLessThan(int age) 작은 항목을 검색한다.
GreaterThanEqual findByAgeGreaterThanEqual(int age) 크거나 같은 항목을 검색한다.
Like findByNameLike(String name) like를 통한 항목을 검색한다.
IsNull findByJobIsNull() null인 항목을 검색한다.
In findByJob(String ... jobs) 여러 값중에 하나인 항목을 검색한다.
OrderBy findByEmailOrderByNameAsc(String email) 검색 결과를 정렬하여 전달을 한다.

3) 페이징

Query 메서드의 입력변수로 Pageable 변수를 추가하면 Page 타입을 반환형으로 사용할 수 있다. Pageable 객체를 통해 페이징과 정렬을 위한 파라미터를 전달한다.

Page<Test> getTest(Pageable pageable) {
    return service.getList(pageable);
}
GET /users?page=1&size=10&sort=createdAt,desc&sort=userId,asc
파라미터명 설명
page 몇번째 페이지 인지를 전달한다.
size 한 페이지에 몇개의 항목을 보여줄 것인지 전달한다.
sort 정렬 정보를 전달하고 이 정보는 필드이름, 정렬방향의 포맷으로 전달된다. 여러 필드의 순차적으로 정렬이 가능하다. (sort = createdAt, desc&sort=userId,asc)

 

728x90