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

由于我刚开始建表时未设置主键mybatisplus自动生成未在实体类表中标注主键。后加了主键
所以需在实体类主键添加上@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注解来标注主键
本文介绍在使用MyBatisPlus进行数据库操作时,如何正确配置实体类的主键,确保delete操作能够准确执行。当数据库表已设置主键但实体类未正确标注时,需使用@TableId注解来标记实体类中的主键字段。
1952





