我有一个实体,需要将其链接到多个子实体,我的示例是:我有发票抬头实体,我想使用@OneToMany
多个实体,“发票调整”和“事前通知实体”链接到它。
因此,发票抬头可以具有一项或多项发票调整和一项或多项事前通知。
我可以链接到一个实体,但是不确定在尝试其他选项而无法正常工作时如何链接到另一个实体,
例如下面是我的代码和错误。
public class InvoiceHeader extends InvoiceProcessing{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Size(max = 1)
private String recordId;
@Size(max = 1)
private String action;
@OneToMany(mappedBy = "invoiceHeader", cascade =
CascadeType.ALL,orphanRemoval = true)
private List<InvoiceAdjustment> invoiceAdjustments = new ArrayList<>();
@OneToMany(mappedBy = "priorNotice", cascade =
CascadeType.ALL,orphanRemoval = true)
private List<PriorNoticeFoodAndDrugAdmin> priorNoticeFoodAndDrugAdmins = new ArrayList<>();
}
public class InvoiceAdjustment extends InvoiceProcessing{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String recordId;
private String reserved;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "invoiceHeader_id")
private InvoiceHeader invoiceHeader;
}
public class PriorNoticeFoodAndDrugAdmin extends InvoiceProcessing{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String recordId;
private String reserved;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "priorNotice_id")
private InvoiceHeader invoiceHeader;
}
这是我得到的错误:
Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: com.invoiceconverter.invoiceconverter.model.PriorNoticeFoodAndDrugAdmin.priorNotice in com.invoiceconverter.invoiceconverter.model.InvoiceHeader.priorNoticeFoodAndDrugAdmins
您需要像下面一样更改mappedBy
属性。
@OneToMany(mappedBy = "InvoiceAdjustment", cascade =
CascadeType.ALL,orphanRemoval = true)
private List<InvoiceAdjustment> invoiceAdjustments = new ArrayList<>();
@OneToMany(mappedBy = "PriorNoticeFoodAndDrugAdmin", cascade =
CascadeType.ALL,orphanRemoval = true)
private List<PriorNoticeFoodAndDrugAdmin> priorNoticeFoodAndDrugAdmins = new
ArrayList<>();
mappedBy
属性应具有其他类的值。