我很難找到錯誤的根本原因,其中@OneToOne映射不工作並且返回「引用未知實體」異常。Hibernate @OneToOne引用未知實體錯誤
首先我確保兩個類都使用@Entity標籤正確註釋。另外值得注意的是我的Product.java類(你會在下面看到)工作的很好,而且當我嘗試將一個外鍵附加到引用Product.java類的Project.java類時遇到問題。
Java代碼Project.java和Product.java
@Entity
@Table (name="project")
@SequenceGenerator(name="seq_project",sequenceName="BI**********.SEQ_PROJECT", allocationSize=1, initialValue=1)
public class Project {
//Fields
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_project")
@Column(name="PROJECT_ID")
private int id;
@Column(name="PROJECT_CODE")
private String projectCode;
@Column(name="PRODUCT_ID")
private int productId;
@Column(name="DESCRIPTION")
private String description;
@OneToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
//@PrimaryKeyJoinColumn
@JoinColumn(name="PRODUCT.PRODUCT_ID")
private Product product;
@Entity
@Table (name="PRODUCT")
@SequenceGenerator(name="seq_product",sequenceName="BI************.SEQ_PRODUCT", allocationSize=1, initialValue=1)
public class Product {
//Fields
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_product")
@Column(name="PRODUCT_ID")
private int productId;
@Column(name="PRODUCT_NAME")
private String productName;
@Column(name="DESCRIPTION")
private String description;
@OneToOne(mappedBy="Project")
@JoinColumn(name="PROJET_FK1")
private Project project;
以下是錯誤代碼,我得到:
Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.manh.entries.Project.product references an unknown entity: com.manh.entries.Product
感謝任何幫助和建議。
我在您的參考文獻中看到了一些差異。你寫了'@OneToOne(mappedBy =「Project」)',但你的表名爲'@Table(name =「project」)'(注意字母「P」)。你還沒有在'Project'類內的第一個'@ OneToOne'關係上添加'mappedBy' – DarkCygnus