java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > MybatisPlus中removeById删除数据库未变

MybatisPlus中removeById删除数据库未变解决方案

作者:高树悲风

MyBatisPlus中,removeById需实体类标注@TableId注解以识别数据库主键,若字段名不一致,应通过value属性指定表主键字段名,确保正确映射

MybatisPlus中removeById删除数据库未变

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注解来标注主键

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文