it-swarm.com.ru

Spring Boot JPA CrudRepository

Я работаю с Spring Boot + Spring Data JPA и сталкиваюсь с этой проблемой, когда пытаюсь внедрить класс, расширяющий CrudRepository:

Вызывается: org.springframework.beans.factory.BeanCreationException: Ошибка при создании bean-компонента с именем topicRepository: не удалось разрешить соответствующий конструктор (подсказка: укажите аргументы index/type/name для простых параметров, чтобы избежать неоднозначности типов)

Репозиторий Класс:

public interface TopicRepository extends CrudRepository<Topic, Integer> {}

Класс обслуживания:

@Service
public class TopicService {

      @Autowired
      private TopicRepository topicRepository;
}

Какие-либо предложения?

8
A.Chakroun

У меня была та же проблема, и я исправил ее, переключив версии Spring Boot. Изменение версий Spring Data JPA ничего не сделало (я предполагал, что это будет ошибкой), поэтому я думаю, что есть ошибка в Spring Boot версии 1.5.1. Я переключился обратно на версию 1.4.3, и ошибка исчезла. Я не пробовал последующие/разные версии, поэтому вам, возможно, придется поэкспериментировать с вашими зависимостями и их версиями.

Для записи, вы можете пометить свой класс обслуживания с помощью @Repository, это не должно иметь никакого значения. Я настраивал эти приложения одинаково, используя шаблон service/dao, и он никогда не был слишком требователен к аннотациям. Надеемся, что это может помочь другим, чей процесс разработки Spring Boot внезапно выдает ошибку!

9
Trevor Bye

Какие версии spring-data-commons и spring-data-jpa вы используете. Я просто столкнулся с этим, используя spring-data-commons 1.13.x с spring-data-jpa 1.10.x. Обновление spring-data-jpa до 1.11.x решило проблему для меня.

4
Andy Sampson

Была такая же проблема на 1.5.2. Обновление до 1.5.5 решило проблему.

0
dzirtbry

У меня тоже была такая же проблема после обновления Spring Boot до 1.5.4. 

Я также использую spring-data-envers, который был в версии 1.0.4. Обновление до 1.4.1 решило проблему.

Надеюсь, это кому-нибудь поможет :)

0
r4phG

Удостовериться:

1) TopicRepository помечен @Repository.

2) У вас настроены пакеты сканирования:

<jpa:repositories base-package="mypkg.repositories"></jpa:repositories>
0
Maciej Kowalski