簡體   English   中英

java.sql.SQLException:“字段‘voc_id’沒有默認值”。 使用 Spring JPA

[英]java.sql.SQLException: 'Field 'voc_id' doesn't have a default value'. using Spring JPA

我正在嘗試在一對一關系中插入 Voc, Recovery class。
Voc 將首先插入,它的 pk 將進入 Recovery class,因為它是外鍵。 (這將被用作恢復類的PK)


這是 Voc class,它是父級。
 @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... }

這是 Recovery class,它是孩子。
 @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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM