5
我有兩個實體之間的多對一映射(A和B,一個B可以與許多關聯)在我需要的能力有一個ID對於A(A.B_ID)上的B,該特定的B實體不存在於數據庫中。這可能嗎?JPA一對一的關係,實體可能不存在
A的我們的代碼(簡體)例如:
@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;
}
// ...
}
這些基本設置與Hibernate試圖保存A.B_ID空值結束了,並且是不允許的:
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("MY_SCHEMA"."A"."B_ID")
對於澄清,如果實體尚不存在,我不希望它被創建。我只想要A在數據庫中沒有B插入。兩個表之間沒有外鍵約束。