在双向关系中级联插入后,空DB连接列

时间:2014-11-11 14:00:40

标签: java jpa one-to-many many-to-one

我有两个通过双向ManyToOne / OneToMany关系连接的类:

ClassA成员:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "classA")
private List<ClassB> classBList = new ArrayList<ClassB>();

ClassB成员:

@ManyToOne
@JoinColumn(name = "CLASSA_ID", referencedColumnName = "id")
private ClassA classA;

当我调用 classA.getClassBList()。add(newClassB); 时,会创建一个用于classB的新DB条目,但DB列CLASSA_ID仍为null。 当然所有实体都在persistence.xml中定义。

我感谢任何帮助,也许它只是一个小细节。


感谢 bigGuy 我的课现在看起来像这样:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "CLASSA_ID", referencedColumnName = "id")
private List<ClassB> classBList = new ArrayList<ClassB>();


@ManyToOne
private ClassA classA

1 个答案:

答案 0 :(得分:0)

注释 @JoinColumn 表示该实体是该关系的所有者。

在您的情况下,所有者是ClassB。

因此,您应该使用此行创建关系:

newClassB.setClassA(classA);

如果您想与线

建立关系
classA.getClassBList().add(newClassB);

使ClassA成为关系的所有者(将 @JoinColumn 移至classA)。