当前使用版本(必填,否则不予处理)
3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
逻辑删除字段 在MVC中传入1个实体entity,传入的entity中包含表中所有字段(包含逻辑删除字段),在调用Iservice的default boolean updateById(T entity)方法时,自动生成的sql不会修改标记为@TableLogic的字段
重现步骤(如果有就写完整)
entity:
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.experimental.Accessors;
import java.io.Serializable;
@Accessors(chain=true) @TableName("pms_brand") public class BrandEntity1 implements Serializable { private static final long serialVersionUID = 1L;
@TableId
private Long brandId;
private String name;
private String logo;
private String descript;
@TableLogic(value = "1", delval = "0")
private Integer showStatus;
private String firstLetter;
private Integer sort;
}
controller:
/* * 修改 / @RequestMapping("/update") public R update(@RequestBody BrandEntity brand){ brandService.updateById(brand); return R.ok(); }
request:
{ "brandId": 1, "descript": "string", "firstLetter": "M", "logo": "string", "name": "string", "showStatus": 1, "sort": 0 }
自动执行的sql UPDATE pms_brand SET name='string', logo='string', descript='string', first_letter='M', sort=0 WHERE brand_id=1 AND show_status=0
报错信息
不能修改被@TableLogic标注的字段的值
Comment From: miemieYaho
就这样的