【问题标题】:Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that position [1] did not exist具有该位置 [1] 的参数不存在;嵌套异常是 java.lang.IllegalArgumentException:具有该位置 [1] 的参数不存在
【发布时间】:2019-03-06 00:50:24
【问题描述】:

我正在使用 JPA 存储库[使用 Spring Data] 来查询我的数据库,以便返回我提交日期之间发生的事件列表。我有以下变量的类,这些变量将用作控制器中的请求正文(@RequestBody):

//注意 -> 我的日期必须是字符串

private String initialDate;
private String finalDate;

我在 POSTMAN 中传递以下值

{
    "initialDate":"2018-09-29",
    "finalDate":"2018-09-30"

}

这是我对应的Model类

private String initialDate;
private String finalDate;
private String moreInfo;
private String SomeMoreInfo;

我希望 API 向我返回这些日期之间的信息,为此我在我的存储库层中使用以下查询。

@Query("SELECT u from Kitchen u WHERE STR_TO_DATE(u.date, '%a, %c %b %Y %k:%i:%s') between :initial_day AND :final_day")            
    List<Cozinha> findPlateByDate(@Param("initial_day") String initial_day,@Param("final_day") String final_day);

POSTMAN 中出现以下错误 [如问题标题中所述]

 "message": "Parameter with that position [1] did not exist; nested exception is java.lang.IllegalArgumentException: Parameter with that position [1] did not exist",

netbeans服务器控制台出现如下错误

Caused by: java.lang.IllegalArgumentException: Parameter with that position [1] did not exist

我的问题是,我做的查询对吗?我们的语法错了吗?

【问题讨论】:

  • 仅供参考 JPQL 没有这样的功能STR_TO_DATE
  • 我有一种预感,这可能是 Spring Data JPA 中的一个错误。您能否发布完整的堆栈跟踪以及您使用的是哪个版本的 Spring Data JPA?

标签: java spring spring-data-jpa jpql


【解决方案1】:

字符串文字中冒号的这种损坏原因处理已损坏。

一种解决方法是去掉查询中的冒号,因为它们被解释为绑定参数。

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 2015-11-22
    • 2018-07-05
    • 1970-01-01
    • 2017-10-03
    • 2015-03-12
    • 2017-07-29
    • 1970-01-01
    • 2016-09-15
    相关资源
    最近更新 更多