Ich habe eine Viele-zu-Eins-Zuordnung zwischen zwei Entitäten (A und B, ein B kann mit vielen As verbunden sein), wo ich die Fähigkeit haben muss, eine ID zu haben für B auf A (A.B_ID), wo diese bestimmte B-Entität nicht in der Datenbank existiert. Ist das möglich?JPA Eins-zu-Eins-Beziehung, in der Entität nicht existieren kann
A (vereinfachte) Beispiel unseres Code:
@Entity
@Table(name = "A")
public class A implements java.io.Serializable {
// ...
private B b;
// ...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "B_ID")
public B getB() {
return this.b;
}
// ...
}
@Entity
@Table(name = "B")
public class B implements java.io.Serializable {
// ...
private Set<A> as = new HashSet<A>(0);
// ...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "b")
public Set<A> getAs() {
return this.as;
}
// ...
}
Das grundlegende Setup endet mit Hibernate versucht, einen Nullwert für A.B_ID zu speichern und das ist nicht erlaubt:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("MY_SCHEMA"."A"."B_ID")
Für Klarstellung, wenn die Entität noch nicht existiert, möchte ich nicht, dass sie erstellt wird. Ich möchte nur, dass A ohne B in die db eingefügt wird. Zwischen den beiden Tabellen gibt es keine Fremdschlüsseleinschränkung.