JPA级联插入:在内存中,子代不会收到自动生成的ID

时间:2019-08-22 07:57:22

标签: jpa parent-child cascade

我有与 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,该怎么办?

0 个答案:

没有答案