Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql org.apache.ibatis.type.TypeException:无法为映射设置参数:ParameterMapping_Mysql_Spring Boot_Ibatis - Fatal编程技术网

Mysql org.apache.ibatis.type.TypeException:无法为映射设置参数:ParameterMapping

Mysql org.apache.ibatis.type.TypeException:无法为映射设置参数:ParameterMapping,mysql,spring-boot,ibatis,Mysql,Spring Boot,Ibatis,我在Springboot2.0的ibatis中遇到了一个日期比较错误,我已经没有主意了 我的映射程序如下所示(使用MySql): 我正在传入一个不为null的有效java.sql.date对象。但我在引用日期比较时遇到了以下错误: 2018-09-02 21:14:23.999错误5644---[nio-8088-exec-2] o、 a.c.c.c.[/].[dispatcherServlet]:的Servlet.service() 路径为[]的上下文中的servlet[dispatcherS

我在Springboot2.0的ibatis中遇到了一个日期比较错误,我已经没有主意了

我的映射程序如下所示(使用MySql):

我正在传入一个不为null的有效java.sql.date对象。但我在引用日期比较时遇到了以下错误:

2018-09-02 21:14:23.999错误5644---[nio-8088-exec-2] o、 a.c.c.c.[/].[dispatcherServlet]:的Servlet.service() 路径为[]的上下文中的servlet[dispatcherServlet]引发异常 [请求处理失败;嵌套异常为 org.mybatis.spring.MyBatisSystemException:嵌套异常为 org.apache.ibatis.type.TypeException:无法为设置参数 映射:参数映射{property='date',mode=IN,javaType=class java.sql.Date,jdbcType=Date,numericScale=null,resultMapId='null', jdbcTypeName='null',表达式='null'}。原因: org.apache.ibatis.type.TypeException:将 参数#1带有JdbcType日期。请尝试为设置其他JdbcType 此参数或其他配置属性。原因: java.sql.SQLException:参数索引超出范围(1>数量) 参数,即0)。]


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

我最终发现了这一点,结果证明这是一个与我所怀疑的完全不同的问题。解决上述错误的简单方法是删除单引号在“#{date,jdbcType=date}”附近的tes


我一开始是这样做的,但是得到了一个MySQL语法错误'near r.date',我认为这与我的日期比较有关,但事实并非如此!它在我的'count(s.id,r.date)'语句的开头抱怨r.date。用'count(*)替换它修复了这个错误。我被解锁。

尝试更改#{date jdbcType=date对于${date,jdbcType=date}好吧,现在是一个不同的错误2018-09-02 22:12:34.905错误18832---[nio-8088-exec-9]o.a.c.c.c.[/].[dispatcherServlet]:Servlet.service()在路径[]的上下文中为Servlet[dispatcherServlet]抛出异常[请求处理失败;嵌套异常为org.mybatis.spring.MyBatisSystemException:嵌套异常为org.apache.ibatis.reflection.ReflectionException:在'class java.sql.DATE'中没有名为'DATE'的属性的getter]请参阅:因此该链接似乎建议我返回#{}语法。我尝试了其他一些事情,包括更改传入变量的名称(我认为date可能是一个我不能使用的特殊名称)。仍然不走运。是的。最好只使用#祝你好运。
@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);