메소드 이름으로 쿼리 생성 NameQuery @Query - 리포지토리 메소드에 쿼리 정의 Parameter binding Return type 페이징과 정렬 벌크성 수정 쿼리 @EntityGraph 쿼리 메소드에 대해서 3단계의 시리즈 중 3번째 시리즈입니다. 이번 글에서는 메소드 이름으로 페이징과 정렬, 벌크성 수정 쿼리, @EntityGraph에 대해 알아보겠습니다. 6. 페이징과 정렬 페이징과 정렬 파라미터 org.springframework.data.domain.Sort : 정렬 기능 org.springframework.data.domain.Slice : 페이징 기능 (내부에 Sort 포함) 특별한 반환 타입 org.springframework.data.domain.Page : 추가 count ..
Spring
메소드 이름으로 쿼리 생성 NameQuery @Query - 리포지토리 메소드에 쿼리 정의 Parameter binding Return type 페이징과 정렬 벌크성 수정 쿼리 @EntityGraph 쿼리 메소드에 대해서 3단계 시리즈 중 2번째 입니다. 이번 글에서는 메소드 이름으로 Parameter binding, Return type에 대해 알아보겠습니다. 4. Parameter binding import org.springframework.data.repository.query.Param public interface MemberRepository extends JpaRepository { @Query("select m from Member m where m.username = :name") Me..
메소드 이름으로 쿼리 생성 NameQuery @Query - 리포지토리 메소드에 쿼리 정의 Parameter binding Return type 페이징과 정렬 벌크성 수정 쿼리 @EntityGraph 쿼리 메소드에 대해서 3단계의 시리즈로 나누어 포스팅할 예정입니다. 이번 글에서는 메소드 이름으로 쿼리 생성, NameQuery, @Query - 리포지토리 메소드에 쿼리 정의에 대해 알아보겠습니다. 쿼리 메소드 기능 3가지 메소드 이름으로 쿼리 생성 메소드 이름으로 JPA NamedQuery 호출 @Query 어노테이션을 사용해서 리파지토리 인터페이스에 쿼리 직접 정의 1. 메소드 이름으로 쿼리 생성 장점: 조건이 2개 이하인 쿼리일 때 매우 편리 단점: 조건이 많아지면 메소드의 이름이 지나치게 길어지는 ..
예제 도메인 모델 주의점 @Setter 실무에서 가급적 사용하지 않기 @NoArgsConstructor AccessLevel.PROTECTED: 기본 생성자 막고 싶지만, JPA 스펙상 PROTECTED로 열어두어야 함 @ToString: 가급적 내부 필드만(연관관계 없는 필드만) 공통 인터페이스 기능 스프링 데이터 JPA 공통 인터페이스 스프링 데이터 JPA가 구현 클래스 대신 생성 org.springframework.data.repository.Repository를 구현한 클래스는 스캔 대상 기능 인터페이스밖에 없는 리포지토리가 동작한 이유 ex) MemberRepository: memberRepository.getClass() -> class.com.sun.proxy.$ProxyXXX @Reposi..