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

3.5.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

数据库表设计,部分字段会默认提供默认值,数据库会填充默认值 (测试: MySQL 5.7.39)

基于注解 @TableField 提供一个策略,insert 插入时,如果表字段属性存在默认值,则提供 default关键字,会自动的填充默认值。

例如:@TableField( insertStrategy = FieldStrategy.DB_FILL )

DB_FILL 策略:insert 字段 为 null ,默认提供 default 关键字填充。

重现步骤(如果有就写完整)

create table test
(
    id   int auto_increment
        primary key,
    name varchar(10)        not null,
    age  tinyint default 18 null,
    sex  tinyint default 0  not null comment '0 未知 ,1 男 ,2 女'
)
    comment '测试';

# 测试用例
insert test(name, age, sex)
values ('211', default, default);

查询结果

PS:第一条结果,是我把 age 默认值第一次 设为 0,后面两条是我修改成 18 后,再次测试的结果。

MyBatis-Plus 增强特性:@TableField insertStrategy 策略提供 DB 预设的默认值

上述的方案:基于 MySQL 数据库,版本: 5.7.39 测试的结果。

报错信息

Comment From: miemieYaho

不支持