今天遇到了一個問題,在更新數據時,MybatisPlus不會進行修改屬性為空的數據表字段。
解決辦法:
只需要在實體類的屬性上加一行注釋即可
/** * 姓名 */ @TableField(fill = FieldFill.UPDATE) private String name;
這行注釋的意思是:在name這個屬性執行修改時,將自動填充一個值(默認為null),即將字段修改為空,而不是不做修改。
比較老的解決方式:
在用mybatis-plus封裝的updateById方法來更新數據時,想把一個字段設置為null值,但是發現更新后數據沒有為null還是原來的值,這是因為mybatis-plus在更新的時候做了null判斷,默認不更新為null的傳參。
2 解決方法
在實體類對應的字段上加注解@TableField(strategy=FieldStrategy.IGNORED),忽略null值的判斷,例如
@TableField(strategy = FieldStrategy.IGNORED)
private String name;
當@TableField注解有多個值時
@TableField(value = "user_name", strategy = FieldStrategy.IGNORED)
private String userName;