JPA:提交前刷新的实体

时间:2015-08-09 18:14:41

标签: hibernate jpa transactions

如何在我将持久保存实体的同一事务中刷新缺少实体的引用?现在我收到此错误“没有给定标识符的行存在:[此实例尚未作为数据库中的行存在#27565]”。我知道实体在提交之前没有从数据库中找到,但是我需要那些缺少的引用来为该实体添加acl条目。

1 个答案:

答案 0 :(得分:0)

由于您没有提供实体模型,我将编写一个示例。您不需要刷新任何内容,只需将子项添加到父项并保存子项即可。

 @Transactional
 public void createNewChild(Parent parent){

    Child child = new Child();
    child.setParent(parent);

    parent.getChildren.add(child);

    childDao.persist(child);

 }

父母的模型:

 @Entity
 public class Parent{

    private List<Child> children = new ArrayList<>();

    public List<Child> getChildren(){
       return this.children;
    }

    public void setChildren(List<Child> children){
       this.children = children;
    }

 }

如果你在Parent上设置了@Cascade属性来保持和save_update你可以保存父。