当前使用版本(必须填写清楚,否则不予处理)
mybatis-plus 3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
mybatis plus 生成的sql 没有对列名和内置函数名相同的进行转义,返回的值不是存储预期值,而是函数调用值。
期望的sql:
实际的sql
重现步骤
1.在mysql建一张表
CREATE TABLEdmcs_sequence(idint(11) NOT NULL AUTO_INCREMENT,current_valint(11) NOT NULL DEFAULT '0',minint(11) NOT NULL DEFAULT '0',maxint(11) NOT NULL DEFAULT '0',current_datedate NOT NULL DEFAULT '1970-01-01' COMMENT '当前日期',gmt_createtimestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',gmt_modifytimestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '修改时间',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='序列';
2.利用mysql-generator建立对象 `public class DmcsSequence implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer currentVal;
private Integer min;
private Integer max;
@ApiModelProperty(value = "当前日期")
private Date currentDate;
@ApiModelProperty(value = "创建时间")
private Date gmtCreate;
@ApiModelProperty(value = "修改时间")
private Date gmtModify;
}以及mapper
public interface DmcsSequenceMapper extends BaseMapper
3.调用DmcsSequenceMapper selectById方法 返回的DmcsSequence检查字端currentDate
报错信息
期望返回值
实际返回值
当天日期
期望和实际返回值不相等。
Comment From: miemieYaho
自行注解,看文档
Comment From: jinspire
可以使用
解决,下次麻烦请对解决方案回答的透彻一些。