삽질 피하기
[삽질 피하기] JpaRepository 규칙에 맞는 메서드
ozofweird
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