diff --git a/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepository.java b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepository.java index 75ce065b..a66b3a7d 100644 --- a/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepository.java +++ b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepository.java @@ -14,7 +14,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; -public interface MemberRepository extends JpaRepository { +public interface MemberRepository extends JpaRepository, MemberRepositoryCustom{ List findByUsernameAndAgeGreaterThan(String username, int age); diff --git a/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryCustom.java b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryCustom.java new file mode 100644 index 00000000..3e639223 --- /dev/null +++ b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryCustom.java @@ -0,0 +1,10 @@ +package com.example.springdatajpa.repository; + +import com.example.springdatajpa.entity.Member; + +import java.util.List; + +public interface MemberRepositoryCustom { + + List findMemberCustom(); +} diff --git a/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryImpl.java b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryImpl.java new file mode 100644 index 00000000..8868aeea --- /dev/null +++ b/spring-data-jpa/src/main/java/com/example/springdatajpa/repository/MemberRepositoryImpl.java @@ -0,0 +1,19 @@ +package com.example.springdatajpa.repository; + +import com.example.springdatajpa.entity.Member; +import lombok.RequiredArgsConstructor; + +import javax.persistence.EntityManager; +import java.util.List; + +@RequiredArgsConstructor +public class MemberRepositoryImpl implements MemberRepositoryCustom { + + private final EntityManager em; + + @Override + public List findMemberCustom() { + return em.createQuery("select m from Member m", Member.class) + .getResultList(); + } +} diff --git a/spring-data-jpa/src/test/java/com/example/springdatajpa/repository/MemberRepositoryTest.java b/spring-data-jpa/src/test/java/com/example/springdatajpa/repository/MemberRepositoryTest.java index 2b414ec7..80511076 100644 --- a/spring-data-jpa/src/test/java/com/example/springdatajpa/repository/MemberRepositoryTest.java +++ b/spring-data-jpa/src/test/java/com/example/springdatajpa/repository/MemberRepositoryTest.java @@ -306,5 +306,11 @@ public class MemberRepositoryTest { Member findMember = memberRepository.findLockByUsername("member1"); } + + @Test + void callCustom() { + List result = memberRepository.findMemberCustom(); + + } }