mysql+mybatis 场景,发现执行insert后,某个字段的默认值没有生效且值为null(默认值为服务机构)。已解决该问题。
在mysql内执行sql(模仿mybatis场景):
1:创建表son,字段有自动递增主键id,默认值为服务机构的val,普通字段parentId;为val赋值为null(也就是new出的实体类
Son的初始属性为null)
insert into son values(0,null,null)
2:执行insert语句,发现val并没有赋值默认值 “服务机构”。通过下图可知
3:更新insert语句,把val去除,再次执行,会发现val默认值生效(值为服务机构)。
insert into son(id,parentId) values(0,null)
由上不难看出,当设置默认值的字段赋值为null时会把默认值覆盖掉
因此,我们使用mybatis执行insert语句,发现字段默认值没有生效,看看该字段是否添加不等于null或者
不等于空的过滤,因为在程序中,通过new的方式声明类的时候,字段属性全部是null。
而我们在mybatis中若是没有对赋有默认值的字段没有进行null过滤,就会导致赋值该字段null,null会覆
盖默认值。