![](/img/trans.png)
[英]Spring Boot java.sql.SQLException: Field 'id' doesn't have a default value
[英]java.sql.SQLException: 'Field 'voc_id' doesn't have a default value'. using Spring JPA
我正在嘗試在一對一關系中插入 Voc, Recovery class。
Voc 將首先插入,它的 pk 將進入 Recovery class,因為它是外鍵。 (這將被用作恢復類的PK)
@Data @AllArgsConstructor @NoArgsConstructor @Entity @Table(name="voc") public class Voc { @Id @Column(name="id") @GeneratedValue(strategy=GenerationType.IDENTITY) int id; @OneToOne(mappedBy="voc", cascade=CascadeType.ALL) Recovery recovery; // some other variables... }
@Data @Entity @Table(name="recovery") public class Recovery { @Id @Column(name="voc_id") @GeneratedValue(strategy=GenerationType.IDENTITY) int vocId; @OneToOne @PrimaryKeyJoinColumn(name="voc_id") Voc voc; // some other variables... }
我正在嘗試從這個開始做No.3的方式。
但是當我調用 JpaRepository 的 save() 方法時,它會拋出錯誤消息“ Field 'voc_id' doesn't have a default value ”。
我錯過了什么?
或者有比這更好的方法來制作我想要的東西嗎?
錯誤指出“voc_id”沒有默認值,即在創建表時沒有您分配的默認值,以防 voc_id 不是 NULL。因此,如果在代碼中有 null 值分配給 voc_id,它將拋出異常. 避免此錯誤的最佳方法是在創建表查詢中為所有 NOT NULL 屬性定義一些默認值。 在您的情況下,您還需要檢查為什么它會獲得 null 值,因為它是自動生成的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.