org.springframework.core.convert.ConverterNotFoundException: 找不到能够从类型 [java.lang.String] 转换为类型模型的转换器

org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type Model

这是存储库方法,您将看到 created_date 的 UserDetail 实体 Table 中的 select 列,但是当我输入 swagger 这个值 2021- 时出现错误10-1423:16:31

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

我尝试在服务层输入parametr String格式并转换为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]

如何解决这个问题>?

您使用的是“命名参数”,因此看起来您需要在查询中添加一个@Param。像这样:

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