一、問題描述
修改實體主鍵的設置方式爲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選項並不會更新到表結構中。所以我刪除了表結構,重新生成就沒有問題了。