我有两个具有单向关系的类:
@Entity
public class A {
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="fk_column")
private List<B> bList;
...
}
@Entity
public class B {
...
}
当我第一次这样做时:
A a = new A();
B b = new B();
a.getBList().add(b);
em.merge(a);
然后a和b在数据库中保持初始状态,b得到了正确的外键到a。
但是当我在另一个交易中这样做时:
A a = loadFromDatabaseByJPQLQuery();
B anotherB = new B();
a.getBList().add(anotherB);
em.merge(a);
然后另一个B确实存在,但它在fk_column中的外键是null。
如何正确存储密钥?