MyBatis更新字段为null的一点思路
问题: 在好多工程里,我们都习惯了使用if test=xxx!=null
进行部分字段动态更新。但是如果我们遇到这种需要更新字段为null的情况呢?
大概方案想到了三种:
- 去掉test条件。需要保证更新的实体都是从DB中查出来的,否则会丢数据
- 使用特殊的值。比如-1等,这种含义有点模糊不清,并且可能以后随着业务发展也需要改。
- 在更新对象中增加一个
List<String> resetFields
。在if条件判断的时候使用if test="resetFields.contains('xxx')"
来进行动态更新。
不知道还有更好的方式,如有请留言共同交流一下.