2016-09-23 3 views
2

저는 @EnableJpaRepositories를 사용하고 있으며 패키지가 아닌 특정 클래스를 정의 할 수있는 기회에 관심이 있습니다. 이 뒤에 그 이유는 내가 멀티 모듈 프로젝트를 사용하고 사실과 순간에 모든 저장소 별도의 패키지에 정의가 포함 된 코어 모듈이 : 코어 모듈에 의존성이있는 다른 모듈에서EnableJpaRepositories를 사용하여 특정 저장소 클래스 정의

core/repository/ - Here all repository definitions are stored 

을, 나는 가져 오는 저장소에 대한 다음과 같은 정의를 사용

@EnableJpaRepositories(basePackages ="core.repository") 

은 분명히이 core/repository 패키지 아래에있는 모든 저장소에 대한 페치 정의를 의미한다 사용. 그러나 일부 패키지에서는 일부 저장소 만 필요하며 모든 저장소는 필요하지 않습니다. 지금은 내가 좋아하는 별도의 패키지에 모든 단일 저장소 정의를 이동 한 :

core/repository/user 

그러나 내가 관심 - 콘크리트 저장소 클래스가 아닌 패키지, 그런 걸 정의 할 정말 수 :

@EnableJpaRepositories(baseClasses ="core.repository.UserRepository") 

감사합니다, 건배

답변

0

당신은 includeFilters/excludeFilters의 PARAM를 사용하여로드 된 저장소를 사용자 정의 할 수 있습니다.

@EnableJpaRepositories(basePackages = "core.repository", includeFilters = @ComponentScan.Filter(MyModuleJpaRepo.Class)) 

을 한 후 적절한 주석과 함께 모든 모듈 저장소 표시 :

예를 들어, 당신은 당신의 EnableJpaRepositories 구성에서 필터를 정의 할 수 있습니다 여기에

@MyModuleJpaRepo 
public interface TestRepository extends JpaRepository<Test, Long> { … } 

당신이 스프링 데이터 작성자의 예를 찾을 수 있습니다 : https://stackoverflow.com/a/22744045/1545775