Мне сложно найти основную причину ошибки, когда мое сопоставление @OneToOne не работает и возвращает исключение «ссылки на неизвестную сущность».Hibernate @OneToOne Ссылки на ошибку неизвестного объекта
Для начала я гарантировал, что оба класса правильно аннотируются тегом @Entity. Также стоит отметить, что мой класс Product.java (который вы увидите ниже) работал нормально и сталкивается с проблемой, когда я пытаюсь подключить внешний ключ к классу Project.java, ссылаясь на класс Product.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»). Также вы не добавляете 'mappedBy' в первые отношения' @ OneToOne' внутри класса 'Project' – DarkCygnus