Ho una mappatura molti a uno tra due entità (A e B, una B può essere associata a molti As) dove ho bisogno della possibilità di avere un ID per B su A (A.B_ID) dove quella particolare entità B non esiste nel database. È possibile?JPA relazione uno a uno in cui l'entità potrebbe non esistere
A (semplificato) esempio del nostro codice:
@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;
}
// ...
}
Questa configurazione di base finisce con Hibernate cercando di salvare un valore nullo per A.B_ID e che non è consentito:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("MY_SCHEMA"."A"."B_ID")
Per chiarimento, se l'entità non esiste già, non voglio che venga creata. Vorrei solo che A fosse inserito senza B nel db. Non esiste alcun vincolo di chiave esterna tra le due tabelle.