본문 바로가기

강의 정리/스프링 데이터 JPA3

3. 확장 기능 1. 사용자 정의 Repository 구현 Spring Data Jpa 는 인터페이스만 정의 구현체는 스프링이 자동생성해준다. 인터페이스의 메소드를 직접 구현하고싶다면? 인터페이스를 한개 생성한다. 인터페이스 내에 구현하고자 할 메소드를 정의한다. 1번에서 생성한 인터페이스에 대한 구현체를 생성한다. 구현체는 공통인터페이스 + Impl 로 이름을 맞춰줘야 한다. 공통 인터페이스에 구현체를 상속받는다. public interface MemberRepository extends JpaRepository, MemberRepositoryCustom(2번의 구현체) 2. Auditing 순수 JPA 를 사용한 Auditing 상속을 통하여 사용한다. @PrePersist / @PostPersist / @PreUp.. 2021. 1. 14.
2. 쿼리 메소드 기능 쿼리 메소드 기능 메소드 이름으로 쿼리 생성 메소드 이름으로 JPA Named Query 호출 '@Query' 어노테이션을 사용해서 리포지토리 인터페이스에 쿼리 직접 정의 1. 메소드 이름으로 쿼리 생성하는 기능 docs.spring.io/spring-data/jpa/docs/2.4.2/reference/html/#jpa.query-methods.query-creation 간단한 쿼리를 사용할 때 자주 사용한다. 조회 : find...By COUNT : count...By EXISTS : exists...By 삭제 : delete...By DISTINCT : findDistinct LIMIT : findFirst3, findFirst, findTop 2. JPA NamedQuery query 문을 잘못 .. 2021. 1. 10.
1. extends JpaRepository 1. 공통 인터페이스 설정 @EnableJpaRepositories(basePackage = "study.datajpa.repository") 이런식으로 레포지토리 인터페이스의 위치를 잡아줘야 한다. 부트를 사용시, @SpringBootApplication 위치부터 하위패키지를 모두 인식하기 때문에 별다른 설정없이 레포지토리 인터페이스를 사용할 수 있다. public interface ..... extends JpaRepository 구현체가 없는데 어떻게 동작을하느냐? extends JpaRepository 가 있으면 Spring Data JPA가 인터페이스에 대해서 프록시 구현체를 만든 뒤 DI 받기 때문에 사용할 수 있다. @Repository 생략 가능 컴포넌트 스캔을 Spring Data JPA.. 2021. 1. 10.