mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。

下面给大家介绍使用mybatis-plus的insert方法遇到的问题,具体内容如下所示:

我在添加的时候,无缘无辜的给我报

java.sql.SQLException: Field 'id' doesn't have a default value

如图:

使用mybatis-plus的insert方法遇到的问题及解决方法(添加时id值不存在异常)

后来了解到 使用 mybatis-plus的insert方法,在底层会默认生成一个Long类型的UUID,这就导致跟数据库里面类型不一致导致错误,我们首先要做的是要把这个默认自增的主键给禁了

  在实体类 id上面加一个注解

@TableId(value = "id",type = IdType.INPUT)
private String id;

这样即可

@Data
public class JtbTransactionRecord extends Model<JtbTransactionRecord> implements Serializable{
 private static final long serialVersionUID = 1L;
 
 /**
  * 交易主键
  */
 @TableId(value = "id",type = IdType.INPUT)
 private String id;
}

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章