gpt4 book ai didi

mysql - 组织.apache.ibatis.type.TypeException : Could not set parameters for mapping: ParameterMapping

转载 作者:行者123 更新时间:2023-11-29 05:53:19 30 4
gpt4 key购买 nike

我在 Springboot 2.0 中的 ibatis 中进行日期比较时出错,我没有思路。

我的映射器看起来像这样(使用 MySql):

@Select("select count(s.id,r.date) from eshrsys.score s join eshrsys.round on (s.round_id = r.id) where r.date > '#{date,jdbcType=DATE}'")
Integer getScoreCountFromDate(Date date);

我正在传递一个非空的有效 java.sql.date 对象。但是我在引用日期比较时遇到此错误:

2018-09-02 21:14:23.999 ERROR 5644 --- [nio-8088-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='date', mode=IN, javaType=class java.sql.Date, jdbcType=DATE, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #1 with JdbcType DATE . Try setting a different JdbcType for this parameter or a different configuration property. Cause: java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).]

我尝试了多种不同的解决方法,从在发送之前将输入转换为字符串,到删除单引号,再到使用 jdbcType。没有任何效果。

最佳答案

我终于弄明白了,事实证明这是一个与我怀疑的截然不同的问题。解决上述错误的简单方法是删除“#{date,jdbcType=DATE}”周围的单引号。

最初我这样做了,但遇到了一个 MySQL 语法错误“near r.date”,我认为这必须与我的日期比较有关,但事实并非如此!它在我的“计数(s.id,r.date)”声明的开头提示 r.date。将其替换为“count(*)”可解决此问题。我被解锁了。

关于mysql - 组织.apache.ibatis.type.TypeException : Could not set parameters for mapping: ParameterMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143140/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com