当前使用版本(必须填写清楚,否则不予处理)

3.2.0

该问题是怎么引起的?(最新版上已修复的会直接close掉)

全部是正常步骤,包括@TableName,@TableField注解的使用

重现步骤

报错信息

attempting to get column 'name' from result set. Cause: java.sql.SQLDataException: Cannot convert string '测试公司一' to java.sql.Timestamp value\n; Cannot convert string '测试公司一' to java.sql.Timestamp value; nested exception is java.sql.SQLDataException: Cannot convert string '测试公司一' to java.sql.Timestamp value

备注:个人调试信息

映射类字段和sql语句 不匹配,导致ResultSet转换错误。

myabtis在调用DefaultResultSetHandler.createUsingConstructor()方法的时候会用生成的Boundsql执行结果跟全参构造函数的参数数组进行对比,然后获取对应类型的Handler,而boundsql在mybaits-plus初始化的时候生成,TableInfo类的allSqlSelect参数在初始化的时候莫名其妙的将各个字段的顺序变化了一下,由于开发者用的是lombok插件,实在找不到 allSqlSelect 属性的初始化位置,所以提出此issue,期望得到您的解决。

举例,实体类的全参构造函数是 User(String name,String pwd,Date create_time,Date update_time) 生成的Sql应该是 select name, pwd, create_time, update_time from user;

但是 tableinfo 初始化的时候生成的allSqlSelect是 name, create_time, pwd, update_time,参数pwd的位置跟create_time调换,导致本应该解析为string类型的参数会被mybatis强制解析为timestamp

Comment From: miemieYaho

那你就给个无参构造

Comment From: coolerfall

有解决么,遇到相同的问题

Comment From: Jenes9924

有解决么,遇到相同的问题

没法解决,源码是固定的,我换成手动的了。

所以有人建议轻易不要用国产框架。。。。当然,根本的锅还是lombok插件导致的

Comment From: qmdx

有解决么,遇到相同的问题

没法解决,源码是固定的,我换成手动的了。

所以有人建议轻易不要用国产框架。。。。当然,根本的锅还是lombok插件导致的

你为什么不找到问题并解决问题,然后贡献自己的力量,一味的只知道抱怨,你免费用别人的劳动成果还埋汰别人这样合适吗?

Comment From: pengchengyin

别用全参构造