Java 无法通过hibernate注释正确映射实体
我有一个发票实体,其中包含另一个实体-交易对手和另一个实体的列表-项目。在建立项目列表和发票之间的关系时,没有出现任何问题。然而,当我试图在发票实体和交易对手实体之间建立类似关系时,我得到一个错误: pl.coderstrust.model.Invoice.contractor上的@OneToOne或@ManyToOne引用未知实体:pl.coderstrust.model.contractor.contractor 这是我的发票,预计只包含一个交易对手和一个项目列表Java 无法通过hibernate注释正确映射实体,java,hibernate,Java,Hibernate,我有一个发票实体,其中包含另一个实体-交易对手和另一个实体的列表-项目。在建立项目列表和发票之间的关系时,没有出现任何问题。然而,当我试图在发票实体和交易对手实体之间建立类似关系时,我得到一个错误: pl.coderstrust.model.Invoice.contractor上的@OneToOne或@ManyToOne引用未知实体:pl.coderstrust.model.contractor.contractor 这是我的发票,预计只包含一个交易对手和一个项目列表 @Entity @Tabl
@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<>();
这是我的交易对手,应该与许多发票相关:
@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;
@实体
@表(名称=“交易对手”)
实现可序列化的公共类{
@身份证
@列(name=“nip”)
私用绳夹;
私有字符串companyName;
私有字符串电话号码;
私有字符串bankName;
私有字符串银行号;
@OneTONE(fetch=FetchType.LAZY,mappedBy=“对手方”,cascade=CascadeType.ALL)
私人地址;
@OneToMany(mappedBy=“contractor”,fetch=FetchType.LAZY,cascade={CascadeType.PERSIST,
CascadeType.MERGE,
CascadeType.DETACH,CascadeType.REFRESH})
私人清单发票;
发票交易对手关系有什么问题?当类未添加到Hibernate配置时,通常会引发Hibernate错误。Hibernate需要被告知作为实体的所有类,然后才能使用它们 如何使您的类为Hibernate所知?例如,通过将类添加到配置对象:
configuration.addClass(Counterparty.class);
或者在使用Spring时将类添加到扫描实体的包中
另一个注意事项:Item类似乎有些奇怪?它指定了与发票的一对一关系;这是否应该是多对一(意味着一张发票可以有0个或多个项目)?它是从SpringBootApplication注释中提供的基本包扫描的。请发布交易对手的导入。
configuration.addClass(Counterparty.class);