【发布时间】:2021-06-02 09:09:43
【问题描述】:
场景如下:我正在实现一个购物车,客户可以使用 Hibernate 从产品目录中选择产品。
我得到了这个异常,但我不知道我做错了什么。
线程“主”java.lang.ExceptionInInitializerError 中的异常, 引起:org.hibernate.AnnotationException:com.OrderManagementMaven.bo.ShoppingcartItem.customer 上的 @OneToOne 或 @ManyToOne 引用了未知实体:com.OrderManagementMaven.bo.Customer
在 org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:100) 在 org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processEndOfQueue(InFlightMetadataCollectorImpl.java:1823) 在 org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processFkSecondPassesInOrder(InFlightMetadataCollectorImpl.java:1767) 在 org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1655) 在 org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:295) 在 org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:86) 在 org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:479) 在 org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85) 在 com.OrderManagementMaven.HibernateUtil.(HibernateUtil.java:15)
这是我的代码:
@Entity
@Table(name = "SHOPPINGCART_ITEM")
public class ShoppingcartItem {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private long itemId;
@ManyToOne
@JoinColumn(name="PRODUCTID")
private Product product;
@ManyToOne
@JoinColumn(name="CUSTOMERID")
private Customer customer;
private int amount;
//...
}
@Entity
@Table(name = "PRODUCTCATALOG")
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
private double price;
private String
//...
}
@Entity
@Table(name = "CUSTOMER")
public class Customer{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(name="CUSTOMERFIRSTNAME")
private String firstname;
@Column(name="CUSTOMERLASTNAME")
private String lastname;
//...
}
我认为错误不在注释中,因为我更改了几次,仍然出现相同的异常。
【问题讨论】: