【发布时间】:2017-09-07 17:16:08
【问题描述】:
我有一个发票实体,其中包含另一个实体 - 交易对手和另一个实体的列表 - 项目。在建立项目清单和发票之间的关系时,没有问题。但是,当我尝试在发票实体和交易对手实体之间建立类似的关系时,我得到一个错误:
@OneToOne or @ManyToOne on pl.coderstrust.model.Invoice.counterparty references an unknown entity: pl.coderstrust.model.counterparty.Counterparty
这是我的发票,预计只包含一个交易对手和一份物品清单。
@Entity
@Table(name = "invoices")
public class Invoice implements Comparable<Invoice>, Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "invoice_id")
private int id;
@Column(name = "date")
private LocalDate date = LocalDate.now();
@ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH})
@JoinColumn(name = "nip")
private Counterparty counterparty;
@OneToMany(mappedBy = "invoice", cascade = {CascadeType.PERSIST, CascadeType.MERGE,
CascadeType.DETACH, CascadeType.REFRESH})
@JsonBackReference
private List<InvoiceItem> invoiceItems = new ArrayList<>();
这是我的商品实体,可以与一张发票相关:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "item_id")
private int id;
private String description;
private int numberOfItems;
private BigDecimal amount;
private BigDecimal vatAmount;
@JoinColumn(name = "vat_code")
@Enumerated(EnumType.ORDINAL)
private Vat vat;
@OneToOne(mappedBy = "invoice_id", fetch = FetchType.EAGER, cascade = {CascadeType.DETACH,
CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH})
@JsonManagedReference
private Invoice invoice;
这是我的交易对手,应该和很多发票有关:
@Entity
@Table(name = "counterparties")
public class Counterparty implements Serializable {
@Id
@Column(name = "nip")
private String nip;
private String companyName;
private String phoneNumber;
private String bankName;
private String bankNumber;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "counterparty", cascade = CascadeType.ALL)
private Address address;
@OneToMany(mappedBy = "counterparty", fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST,
CascadeType.MERGE,
CascadeType.DETACH, CascadeType.REFRESH})
private List<Invoice> invoices;
发票与交易对手的关系出了什么问题?
【问题讨论】:
-
请张贴Counterparty的进口。