我有两个通过双向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
答案 0 :(得分:0)
注释 @JoinColumn 表示该实体是该关系的所有者。
在您的情况下,所有者是ClassB。
因此,您应该使用此行创建关系:
newClassB.setClassA(classA);
如果您想与线
建立关系classA.getClassBList().add(newClassB);
使ClassA成为关系的所有者(将 @JoinColumn 移至classA)。