【问题标题】:org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type Modelorg.springframework.core.convert.ConverterNotFoundException:找不到能够从 [java.lang.String] 类型转换为模型类型的转换器
【发布时间】:2021-10-14 19:52:15
【问题描述】:

这是存储库方法,您将看到按 created_date 从 UserDetail 实体表中选择列,但是当我输入 swagger 这个值 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);

我尝试在服务层输入参数字符串格式并转换为 LocalDate 时间,如下代码:

 @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]

如何解决这个问题>?

【问题讨论】:

  • 你试过SELECT * FROM UserDetail ...吗?
  • 什么意思我听不懂。
  • 如果您将查询更改为SELECT * FROM UserDetail ...,是否有效?

标签: java spring-boot jpa localdatetime


【解决方案1】:

您正在使用“命名参数”,因此您似乎需要在查询中添加 @Param。像这样:

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

【讨论】:

  • 我这样做了,但现在我收到此错误 java.sql.SQLSyntaxErrorException: Table 'test.test.userdetail' doesn't exist, but all is true.
  • 错误是否完全一样?表的小写名称?你的真实表是如何命名的?
猜你喜欢
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 2014-09-19
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多