У меня проблема с правильным внедрением JpaRepository в поставщик данных.
Я поместил аннотацию @EnableJpaRepositories в свой EpisodiApiApplication.class находится в пакете:
пакет pl.hypeapp.episodie;
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = "pl.hypeapp.episodie.configuration")
@EnableAdminServer
@EnableJpaRepositories
public class EpisodieApiApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(EpisodieApiApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(EpisodieApiApplication.class);
}
}
DatabaseDataProviderConfiguration.class находится в пакете
пакет pl.hypeapp.episodie.configuration.dataprovider;
@Configuration
public class DatabaseDataProviderConfiguration {
@Bean
public TvShowDatabaseProvider tvShowDatabaseProvider(TvShowRepository tvShowRepository) {
return new TvShowDatabaseProvider(tvShowRepository);
}
}
TvShowRepository.class находится в пакете
пакет pl.hypeapp.episodie.dataproviders.database;
public interface TvShowRepository extends JpaRepository<TvShow, String> {
}
Мой поставщик базы данных в модуле application/dataproviders/database DatabaseDataProvider.class
public class TvShowDatabaseProvider implements DoesTvShowExist, GetTvShowFromDatabase, InsertTvShowToDatabase {
private final TvShowRepository tvShowRepository;
public TvShowDatabaseProvider(TvShowRepository tvShowRepository) {
this.tvShowRepository = tvShowRepository;
}
}
TvShow.class находится в пакете:
пакет pl.hypeapp.core.entity.tvmaze;
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
@Entity
public class TvShow {
@JsonProperty("id")
public Integer id;
}
Но я получил эту ошибку:
Ошибка создания bean-компонента с именем tvShowDatabaseProvider, определенным в ресурсе пути к классу [pl/hypeapp/episodie/configuration/dataprovider/DatabaseDataProviderConfiguration.class]: неудовлетворенная зависимость, выраженная через параметр метода tvShowDatabaseProvider 0; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'tvShowRepository': не удалось вызвать метод инициализации; вложенным исключением является java.lang.IllegalArgumentException: не управляемый тип: класс pl.hypeapp.core.entity.tvmaze.TvShow
Весь код на github, но он неполный и может не работать из-за отсутствия классов
@EnableJpaRepositories
? Если ваши объекты не находятся в подпакете вашего@Application
, вам может понадобиться использовать@EntityScan
- person alfcope   schedule 05.04.2017SpiringApplication
? Кроме того, покажите нам имена пакетов для этих классов, напримерTvShowRepository
- person developer   schedule 05.04.2017