Я пытаюсь создать хранилище, но получаю сообщение об ошибке.
Мой интерфейс хранилища:
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.
Скажите, в чем может быть проблема?