繁体   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