admin管理员组文章数量:1794759
mybatisPlus中的field
目录
- mybatisPlus中null值插入和更新问题
- 实际项目解决方法示例一
- 实际项目解决方法示例二
- field-strategy字段更新插入策略介绍
- 枚举类FieldStrategy源码
- 枚举类字段简介
配置mybatisPlus的项目中,默认进行了不是全量更新的策略:NOT_NULL。 即在利用updateWrapper更新时,会做null判断,如果传参数为null,就不会更新。 在实际项目需求中可能配置全局更新策略为:NOT_NULL,但是某些场景更新时需要插入这个null值进行更新。如何解决这个问题呢?
实际项目解决方法示例一实际项目中,配置文件中配置全局字段策略为NOT_NULL。 需求:实际项目中,apply_teacher字段当它为null时需要把null值更新进去。 困难:因为全局字段策略为NOT_NULL,所以默认不会更新null值进去。 解决方法: 利用条件构造器当值为null时set为null。 代码:
Wrapper<StuApplyInfoEntity> updateWrapper = new UpdateWrapper<>(); ((UpdateWrapper) updateWrapper).set(saveApply.getApplyTeacher() == null, "apply_teacher", null); 实际项目解决方法示例二需求:state字段所有值都更新和插入。 困难:因为全局字段策略为NOT_NULL,所以默认不会更新null值进去。 解决方法: 在entity中设置state设置注解@TableField(),配置FieldStrategy为IGNORED。意思是"忽略判断",所有值都更新和插入。 代码:
@TableField(strategy = FieldStrategy.IGNORED, el = "state, jdbcType=VARCHAR") private String state; field-strategy字段更新插入策略介绍 枚举类FieldStrategy源码 public enum FieldStrategy { /** * 忽略判断 */ IGNORED, /** * 非NULL判断 */ NOT_NULL, /** * 非空判断 */ NOT_EMPTY, /** * 默认的,一般只用于注解里 * <p>1. 在全局里代表 NOT_NULL</p> * <p>2. 在注解里代表 跟随全局</p> */ DEFAULT } 枚举类字段简介IGNORED:“忽略判断”,所有字段都更新和插入。 NOT_NULL:“非 NULL 判断”,只更新和插入非NULL值。 NOT_EMPTY:“非空判断”, 只更新和插入非NULL值且非空字符串。 DEFAULT: 默认的,一般只用于注解里。
本文标签: mybatisPlusfield
版权声明:本文标题:mybatisPlus中的field 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686592279a85384.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论