我有与 CascadeType.ALL 具有双向关系的父子实体。父实体和子实体均具有自动生成的ID 。
添加孩子的功能是正确的:
public void addChild(ChildEntity childEntity) {
childrenList.add(childEntity);
childEntity.setParent(this);
}
我在现有父实体上执行以下代码
parent.addChild(childEntity);
getEntityManager().Merge(parent);
getEntityManager().Flush();
System.out.println(childEntity.getID());
我显式调用 flush ,在数据库侧按预期方式创建了子项,但是内存中的childEntity ID仍然为null,不会使用自动生成的ID进行更新。这种行为正确吗?我需要该ID,该怎么办?