백엔드/JPA
스프링 데이터 jpa 사용자 정의 repository 구현
김어찐
2021. 10. 23. 18:03
728x90
사용자 정의 인터페이스 구현
package com.study.datajpa.repository;
import com.study.datajpa.entity.Member;
import java.util.List;
public interface MemberRepositoryCustom {
List<Member> findMemberCustom();
}
사용자 정의 인터페이스 구현체
상속해줄려는 스프링 데이터 jpa 인터페이스명 + "Impl", 부모 인터페이스 명은 상관없음, 구현체명이 중요!
package com.study.datajpa.repository;
import com.study.datajpa.entity.Member;
import lombok.RequiredArgsConstructor;
import javax.persistence.EntityManager;
import java.util.List;
@RequiredArgsConstructor
// 상속해줄려는 스프링 데이터 jpa 인터페이스명 + "Impl", 부모 인터페이스 명은 상관없음, 구현체명이 중요!
public class MemberRepositoryImpl implements MemberRepositoryCustom {
private final EntityManager em;
@Override
public List<Member> findMemberCustom() {
return em.createQuery("select m from Member m")
.getResultList();
}
}
스프링 데이터 jpa 인터페이스에 사용자 정의 "인터페이스" 상속
public interface MemberRepository extends JpaRepository<Member, Long> ,MemberRepositoryCustom{
}
728x90