JPA问题 : Field id doesnt have a default value

一、问题描述

修改实体主键的设置方式为int自增模式,也就是

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;

本以为直接用repository.save,直接万事大吉,结果报错:

Field 'id' doesn't have a default value

二、解决办法

查了很多资料,有的说表结构没有勾选自增选项云云,但我这是jpa自动建表啊,也不用我手动去搞表结构。

后来发现我把表结构删了重新执行代码就正常了。

 

三、问题原因

其实是这个配置搞的事情:

jpa:
  hibernate:
    ddl-auto: update

update只有在新增字段时候,才会修改表结构新加一个字段。

而我之前建好的表,我改了表主键生成方式,update选项并不会更新到表结构中。所以我删除了表结构,重新生成就没有问题了。

你可能感兴趣的:(Spring,Data,JPA)