В SpringBoot JpaRepository не автовключают по умолчанию. Необходимо явно добавить
@EnableJpaRepositories("packages")
@EntityScan("packages")
Если Вы сталкиваетесь с этой проблемой, когда поблочное тестирование с @DataJpaTest
затем Вы найдете ниже решение.
начальная загрузка Spring не инициализируют @Repository
бобы для @DataJpaTest
. Так попробуйте один из этих двух, фиксируют ниже для имения их в наличии:
Первый
Использование @SpringBootTest
вместо этого. Но это загрузит целый контекст приложения.
1112-секундный (Лучшие решения)
Импорт определенный репозиторий Вам нужно, как ниже
@DataJpaTest
@Import(MyRepository.class)
public class MyRepositoryTest {
@Autowired
private MyRepository myRepository;
В @ComponentScan("org.pharmacy")
, Вы объявляете org.pharmacy
пакет. Но Ваши компоненты в com.pharmacy
пакет.
Это могло относиться к пакету, в котором у Вас есть он. У меня была подобная проблема:
Description:
Field userRepo in com.App.AppApplication required a bean of type 'repository.UserRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Действие:
Рассматривают определение боба типа '113' в Вашей конфигурации".
Решенный это помещенным файлы хранилища в пакет со стандартизированным соглашением о присвоении имен:
e.g. com.app.Todo (for main domain files)
и
com.app.Todo.repository (for repository files)
Тот путь, пружина знает, куда пойти, ища репозитории, еще вещи становятся сбивающими с толку действительно быстро. :)
Hope это помогает.