今天遇到一个bug.前端传过去一个空值(非必填项数值),发现有值的时候能正常修改,传空值过去,修改不了,还是原来的东西。
查看后端代码发现,实体类用的是包装类:
Java Service层用的框架生成的update语句:
解决办法:
@TableField(value="building_scale", updateStrategy = FieldStrategy.IGNORED)
后续猜想及搜索求助(有兴趣的可以看看):
后台打印sql没有对应的字段,猜想是因为实体类用的包装类,生成sql的时候,字段为null。所有不会生成对应字段的sql语句。网上搜索资料找到:
然后找找网上有没有相关资料,于是找到这个:
@TableField(strategy=FieldStrategy.IGNORED)字段允许为null_夜一-CSDN博客
问题解决!
版权声明:本文为Dyaping原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。