MybatisPlus中removeById删除数据库未变

MybatisPlus中removeById删除数据库未变_第1张图片

MybatisPlus中removeById删除数据库未变_第2张图片 

removeById(Serializable id)传入的是id:Integer Long等,不是实体对象,就是对应你表的主键

MybatisPlus中removeById删除数据库未变_第3张图片

由于我刚开始建表时未设置主键mybatisplus自动生成未在实体类表中标注主键。后加了主键

MybatisPlus中removeById删除数据库未变_第4张图片 

所以需在实体类主键添加上@TableId就成功了

@TableId(value = "product_id", type = IdType.AUTO)

@TableId注解是专门用在主键上的注解,如果数据库中的主键字段名和实体中的属性名,不一样且不是驼峰之类的对应关系,可以在实体中表示主键的属性上加@Tableid注解,并指定@Tableid注解的value属性值为表中主键的字段名既可以对应上。

比如数据中的表中的字段是vote_id,但是实体类是voteId。那么就需要在voteId上打上这个注解,如下:
/** 主键 */
    @TableId("vote_id")
    @TableId(value = "vote_id")
    private Long voteId;
 

总结:removeById根据你数据库表中的主键来删除,就算数据库中有设置主键实体类上未标注也是不行的,所以需要在实体类中注@TableId注解来标注主键

你可能感兴趣的:(mybatis)