사용자 도구

사이트 도구


java:jpa:springdatajpa:custom_repository

Spring Data JPA - Custom Repository

JpaRepositoryFactoryBean과 JpaRepositoryFactory에 의해서 Repository 의 구현체가 결정되는 듯. 현재 기본 구현체는 SimpleJpaRepository 혹은 QueryDslRepository 두개임.

@EnableJpaRepositories(repositoryFactoryBeanClass = 여기서 다른 팩토리Bean 지정)

구현할 클래스들

  • [Custom]JpaRepositoryFactoryBean : JpaRepositoryFactoryBean을 상속하여 구현하고
    • createRepositoryFactory()를 오버라이드하여 [Custom]JpaRepositoryFactory 객체를 생성하여 리턴한다.
  • [Custom]JpaRepositoryFactory : JpaRepositoryFactory를 상속하여 구현하고,
    • getTargetRepository()를 오버라이드하여 [Custom]JpaRepositoryImpl객체를 리턴한다.
    • getRepositoryBaseClass() 메소드를 오버라이드하여 [Custom]JpaRepositoryImpl 객체를 리턴한다.
  • [Custom]JpaRepository 인터페이스 : JpaRepositoryQueryDslPredicateExecutor, JpaSpecificationExecutor를 상속한 인터페이스. 상속 대상 인터페이스는 무엇을 원하느냐에 따라 다르다. Specification이 불필요하다면 JpaSpecificationExecutor를 상속할 필요가 없는 식.
    • 여기서 Custom한 메소드를 자유롭게 추가해 주어 Repository를 확장할 수 있다.
  • [Custom]JpaRepositoryImpl : [Custom]JpaRepository 인터페이스를 구현하고 QueryDslJpaRepository 혹은 QueryDSL이 불필요하면 SimpleJpaRepository를 상속한다.
    • 여기서 Custom한 메소드를 구현한다.
java/jpa/springdatajpa/custom_repository.txt · 마지막으로 수정됨: 2015/08/25 16:58 저자 kwon37xi