스프링 데이터 JPA-07.Repository 인터페이스 정의하기(스프링 데이터 Common)


스프링 데이터 Common: Repository 인터페이스 정의하기

Repository 인터페이스로 공개할 메소드를 직접 일일히 정의하고 싶다면 (다 받지 말고 쓰는 것만 직접 선언)

특정 리포지토리 당

  • @RepositoryDefinition
@RepositoryDefinition(domainClass = Comment.class, idClass = Long.class)
public interface CommentRepository {

    Comment save(Comment comment);
    List<Comment> findAll();    
}

근데 특정 레포지토리 하나가 아닌 공통적으로 전부 적용하고 싶은 경우에는(내가 선언한 것만)

공통 인터페이스 정의

  • @NoRepositoryBean
@NoRepositoryBean
public interface MyRepository<T, ID extends Serializable> extends Repository<T, ID> {

    <E extends T> E save(E entity);
    List<T> findAll();

}

원래 상속받는 레포지토리 대신 내가 만든 MyRepository를 상속받으면 된다.




© 2019. by jaeuk