Learn & Record
Spring Boot ( 본문
1. 쿼리 메서드 Query Methods 기능과 @Query
- 쿼리메서드 : 메서드의 이름 자체가 쿼리의 구문으로 처리되는 기능
- @Query : SQL과 유사하게 엔티티 클래스의 정보를 이용해서 쿼리 JPQL를 작성하는 기능
- Querydsl 등의 동적 쿼리 기능
2. 쿼리메서드
- 쿼리 메서드는 주로 'findBy'나 'getBy...'로 시작하고 이후에 필요한 필드 조건이나 And, Or와 같은 키워드를 이용해서
- 메서드의 이름 자체로 질의 조건을 만들어 냄
https://docs.spring.io/spring-data/jpa/reference/#jpa.query-methods.query-creation
Spring Data JPA :: Spring Data JPA
Oliver Gierke, Thomas Darimont, Christoph Strobl, Mark Paluch, Jay Bryant, Greg Turnquist Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that
docs.spring.io
- 자세한 내용 위 링크에서 확인 가능
- Between 같은 경우 문서에서 위와 같이 설명
package com.example.spring_boot_project_02.repository;
import com.example.spring_boot_project_02.entity.Memo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface MemoRepository extends JpaRepository<Memo, Long> {
List<Memo> findByMnoBetweenOrderByMnoDesc(Long from, Long to);
}
- MemoRepository 인터페이스 파일에 위 코드 작성
@Test
public void testQueryMethod() {
List<Memo> list = memoRepository.findByMnoBetweenOrderByMnoDesc(70L, 80L);
for (Memo memo : list) {
log.info(memo);
}
}
- Test 파일에 위 코드 작성
3. 쿼리 메서드와 Pageable의 결합
package com.example.spring_boot_project_02.repository;
import com.example.spring_boot_project_02.entity.Memo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface MemoRepository extends JpaRepository<Memo, Long> {
List<Memo> findByMnoBetweenOrderByMnoDesc(Long from, Long to);
Page<Memo> findByMnoBetween(Long from, Long to, Pageable pageable);
}
- MemoRepositoty에 위 코드 추가