Java 无法通过hibernate注释正确映射实体

Java 无法通过hibernate注释正确映射实体,java,hibernate,Java,Hibernate,我有一个发票实体,其中包含另一个实体-交易对手和另一个实体的列表-项目。在建立项目列表和发票之间的关系时,没有出现任何问题。然而,当我试图在发票实体和交易对手实体之间建立类似关系时,我得到一个错误: pl.coderstrust.model.Invoice.contractor上的@OneToOne或@ManyToOne引用未知实体:pl.coderstrust.model.contractor.contractor 这是我的发票,预计只包含一个交易对手和一个项目列表 @Entity @Tabl

我有一个发票实体,其中包含另一个实体-交易对手和另一个实体的列表-项目。在建立项目列表和发票之间的关系时,没有出现任何问题。然而,当我试图在发票实体和交易对手实体之间建立类似关系时,我得到一个错误:

pl.coderstrust.model.Invoice.contractor上的@OneToOne或@ManyToOne引用未知实体:pl.coderstrust.model.contractor.contractor

这是我的发票,预计只包含一个交易对手和一个项目列表

@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);