Ich finde es schwierig, die Ursache eines Fehlers zu finden, bei dem meine @OneToOne-Zuordnung nicht funktioniert und die Ausnahme "Verweise auf eine unbekannte Entität" zurückgibt.Hibernate @OneToOne Verweise auf einen unbekannten Entitätsfehler
Zunächst habe ich sichergestellt, dass beide Klassen ordnungsgemäß mit dem @Entity-Tag versehen sind. Es ist auch erwähnenswert, dass meine Product.java-Klasse (die Sie unten sehen) gut funktionierte und nur ein Problem auftritt, wenn ich versuche, einen Fremdschlüssel an meine Project.java-Klasse anzuhängen, die auf die Product.java-Klasse verweist.
Java-Code für Project.java und 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;
Hier ist der Fehlercode Ich erhalte:
Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.manh.entries.Project.product references an unknown entity: com.manh.entries.Product
Vielen Dank für jede Hilfe und Beratung.
Ich sehe einige Unterschiede in Ihren Referenzen. Sie haben '@OneToOne (mappedBy =" Project ")' geschrieben, aber Ihre Tabelle wurde '@Table (name =" project ")' genannt (Beachten Sie den Buchstaben "P"). Außerdem fügen Sie in der '' OneToOne''-Beziehung innerhalb der 'Projekt'-Klasse – DarkCygnus