2016-09-23 6 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 параметров.

Например, вы можете определить фильтры в вашей конфигурации EnableJpaRepositories:

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

, а затем пометить каждый репозиторий модуля с соответствующей аннотацией:

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

Здесь вы можете найти пример от автора весна-данных : https://stackoverflow.com/a/22744045/1545775

 Смежные вопросы

  • Нет связанных вопросов^_^