保存数据时出错
错误原因:错误:关系“invoice”的列“header_id”中的空值违反了非空约束条件详细信息:失败行包含(...null)。
标题
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "header")
public class Header implements Serializable {
private static final long serialVersionUID = 3363186434410305269L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "header_id")
private Long headerId;
@Column(name = "submitted_by", length = 17)
private String submittedBy;
@OneToMany(mappedBy = "header", cascade = CascadeType.ALL)
@Builder.Default
private List<Invoice> invoices = new ArrayList<>();
}
发票
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "invoice")
public class Invoice implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "invoice_id")
private Long invoiceId;
@Column(name = "serial_no")
private Integer serialNo;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "header_id", nullable = false)
private Header header;
}
请帮我解决这个错误。
1条答案
按热度按时间fafcakar1#
我认为这是因为你的
headerId
可以是空的,因为你使用“Long”作为类型,这是一个很好的做法,但是你应该删除Invoice.java
中的nullable = false
。把nullable = false
放在你的数据库规则中。如果这个问题不是来自那里,当你创建你想保存在数据库中的对象时,检查你的Header类的headerId不是空的。