今天在使用mybatis-plus执行update操作遇到一个坑。这是我的一个实体类,现在我的需求是执行update操作修改逻辑删除字段showStatus。
@Data
@TableName("pms_brand")
public class BrandEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private Long brandId;
private String name;
private String logo;
private String descript;
@TableLogic
private Integer showStatus;
private String firstLetter;
private Integer sort;
}
这里我调用mybatis-plus生成的update,传的参数为brandID和showStatus两个字段,期望执行的sql语句为:update pms_brand set show_status = 1 where brand_id = 1002,结果控制台报错出
where show_status = 1 and brand_id = 1002,说我没设置更新内容。
@RequestMapping("/update")
public R update(@RequestBody BrandEntity brand){
brandService.updateById(brand);
return R.ok();
}
经过一番对比和排查后发现,竟是showStatus加了@Tablelogic注解导致的,把@Tablelogic注解删掉就可以了。另外(请注意如果你的逻辑删除字段是全局配置的也会出现这种情况)