организация.каркасная работа.ядро.преобразование.Исключение ConverterNotFoundException: Не найден конвертер, способный конвертировать из типа [java.lang.Строка] для ввода модели

#java #spring-boot #jpa #localdatetime

Вопрос:

Это метод репозитория, который, как вы увидите, выбирает столбцы из таблицы сущностей UserDetail по created_date, но у меня возникает ошибка При вводе этого значения 2021-10-14 23:16:31

 @Query(value = "SELECT usd.phoneNumber,usd.textMessage FROM UserDetail entity usd WHERE usd.created_date=:createdDate", nativeQuery = true)
    UserDetail findByCreatedDate(LocalDateTime createdDate);
 

Я пытаюсь ввести формат строки параметров на уровне сервиса и преобразовать его в локальное время, как показано в следующем коде:

  @Override
    public UserDetail findByCreatedDateWhenUserTypeOwnInfo(String createdDate) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(createdDate, formatter);
        return this.userDetailRepository.findByCreatedDate(dateTime);
    }
 

Я получаю эту ошибку:

 org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [az.expressbank.expressbankproject.data.model.UserDetail]
 

Как решить эту проблему>?

Комментарии:

1. Ты пробовал SELECT * FROM UserDetail ... ?

2. Что вы имеете в виду, я вас не понимаю.

3. Если вы измените запрос на SELECT * FROM UserDetail ... , это сработает?

Ответ №1:

Вы используете «именованные параметры», поэтому, похоже, вам нужно добавить @Param в свой запрос. подобный этому:

 UserDetail findByCreatedDate(@Param("createdDate") LocalDateTime createdDate);
 

Комментарии:

1. Я делаю это, но прямо сейчас я получаю эту ошибку java.sql.SQLSyntaxErrorException: таблица «test.test.userdetail» не существует, но все верно.

2. Является ли ошибка именно такой? с именем таблицы в нижнем регистре ? Как называется ваша настоящая таблица?