При загрузке контекста весны bean-компонент хранилища не создается - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь создать хранилище, но получаю сообщение об ошибке.

Мой интерфейс хранилища:

public interface CallRepository extends JpaRepository<Call, Integer> {

    @Override
    @Transactional
    Call save(Call call);

    @Modifying
    @Transactional
    @Query("DELETE FROM Call c WHERE c.id=:id AND c.subscriber.id=:subscriberId")
    int delete(@Param("id") int id, @Param("subscriberId") int subscriberId);

    @Query("SELECT Call FROM Call c WHERE  c.subscriber.id=:subscriberId")
    List<Call> getAll(@Param("subscriberId") int subscriberId);

    List<Call> getAllBySubscriberIdAndDateTimeBetween(int subscriberId, LocalDateTime startDateTime, LocalDateTime endDateTime);

} 

Мой класс хранилища:

@Repository
public class CallRepositoryImpl {

    @Autowired
    private SubscriberRepository subscriberRepository;

    @Autowired
    private CallRepository repository;

    @Transactional
    public Call save(Call call, int subscriberId) {
        if (!call.isNew() && get(call.getId(), subscriberId) == null) {
            return null;
        }
        call.setSubscriber(subscriberRepository.getOne(subscriberId));
        return repository.save(call);
    }

    public Call get(int id, int subscriberId) {
        return repository.findById(id)
                .filter(t -> t.getSubscriber().getId() == subscriberId)
                .orElse(null);
    }

    public boolean delete(int id, int subscriberId) {
        return repository.delete(id, subscriberId) != 0;
    }

    public List<Call> getAll(int subscriberId) {
        return repository.getAll(subscriberId);
    }

    public List<Call> getBetweenDateTime(int subscriberId, LocalDateTime startDateTime, LocalDateTime endDateTime) {
        Objects.requireNonNull(startDateTime, "startDateTime must not be null");
        Objects.requireNonNull(endDateTime, "endDateTime must not be null");
        return repository.getAllBySubscriberIdAndDateTimeBetween(subscriberId, startDateTime, endDateTime);
    }

}

При загрузкеВ контексте контекста я получаю сообщение об ошибке:

Ошибка создания компонента с именем 'callRepositoryImpl': неудовлетворенная зависимость, выраженная через поле 'хранилище';вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка при создании компонента с именем 'callRepository': сбой вызова метода init;вложенное исключение - java.lang.IllegalArgumentException: проверка не удалась для запроса для метода public abstract java.util.List ru.subscribeers.repository.events.CallRepository.getAll (int)!

в базе данных "id"с типом Integer, в сущности" id "также с типом Integer.

Скажите, в чем может быть проблема?

1 Ответ

0 голосов
/ 03 ноября 2019

Я не уверен, но не должен ли запрос быть таким?

@Query("SELECT c FROM Call c WHERE  c.subscriber.id=:subscriberId")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...