1、问题场景
在一次普通的更新数据的场景中,我的附件内容存储在一个字段里,requirementUrl,我在编辑的时候,取消掉了附件的内容,使用了updatebyid去更新数据,此时附件字段为null,那么更新到库里的这个字段内容也应该是null,但是更新操作执行后,这个字段的数据还是原来的信息。打了断点,发现更新的数据,附件字段内容确实为空,其他字段都可以更新成功,但是到库里附件字段就没更新成功。
2、解决问题
通过请教同事,得知updayebyid这个方法,如果新的数据为null,库里有数据,就会造成更新失败,因为他的源码设计的就是为空不能更新已存在的数据,最后在实体类的附件中字段上加了一个注解:
@TableField(updateStrategy = FieldStrategy.IGNORED)
如图:
然后就更新成功啦!