MybatisPlus 使用Service.saveOrUpdate时报错,已解决

今天写项目使用saveOrUpdate的时候报了如下错误

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: error: can not execute. because can not find column for id from entity!

排查后发现是我的entity没有添加主键注解 @TableId

导致saveOrUpdate时找不到主键报错

...
public class Admin implements Serializable {

    //在为主键的字段添加此注解就可以了 如果是自增的话 type是 AUTO
    @TableId(value = "phone", type = IdType.NONE)
    private String phone;

...
}

以下是IdType的选择

描述
AUTO数据库 ID 自增
NONE无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
INPUTinsert 前自行 set 主键值
ASSIGN_ID分配 ID(主键类型为 Number(Long 和 Integer)或 String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
ASSIGN_UUID分配 UUID,主键类型为 String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认 default 方法)

具体可以查看官方文档注解 | MyBatis-Plus


版权声明:本文为CHENGHR_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。