작업하면서 배우는 것들

JPA Projection FindAll

Jungsoomin :) 2020. 12. 24. 17:31

JPA 에서 제공하는 Projection 은 FindAll() 메서드 정의시 리턴타입 오류가 난다. 이는 SimpleJpaRepository 에 정의된 내용 때문인 것 같다.

 

이를 회피하기위해서 FindAll~By() 로 메서드를 작성하여 사용한다.

 

이를 찾아본 이유는 Pagable , QueryDSL 과 연계하고 싶어서 이다.

//프로젝션
public interface PostSummary {

    Long getId();

    String getSubject();

    Long getAccountId();

    String getAuthor();

    LocalDateTime getRegisterDate();

    LocalDateTime getUpdateDate();
}


//리포지토리
public interface PostRepository extends JpaRepository<Post,Long>, QuerydslPredicateExecutor<Post> {

    List<PostSummary> findAllPostSummaryBy();

}

//

@Test
    @Rollback(value = false)
    public void summaryTest(){
        List<PostSummary> postsAll = postRepository.findAllPostBy();

    }