在实体Invoice中,我有一组DetailInvoice,cascade是ALL
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "invoice")
public Set<DetailInvoice> getDetailInvoices() {
return detailInvoices;
}
在实体DetailInvoice中:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "invoice_id")
public Invoice getInvoice() {
return invoice;
}
保存:
Invoice invoice = new Invoice();
DetailInvoice detailInvoice = new DetailInvoice();
invoice.getDetailInvoices().add(detailInvoice);
detailInvoice.setInvoice(invoice); // (1) Should we need this row?
session.save(invoice);
如果我们没有行(1),则detailInvoice将在数据库中使invoiceId为null。 为什么Hibernate会根据注释映射自动将setInvoiceId设置为detailInvoice?
非常感谢
答案 0 :(得分:0)