JpaSystemException:具有cascade=“all-delete-orphan”的集合不再被拥有的实体实例引用

问题描述 投票:0回答:1

案例:

实体声明:

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Foo> foos = Lists.newArrayList();

这个区块

            user.getFoos().clear();
// instantiate `foos`, eg: final List<Foo> foos = myService.createFoos(bla, bla);
            user.setFoos(foos);

产生此错误:

org.springframework.orm.jpa.JpaSystemException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: com.github.lalou.jonathan.blabla.User.foos
hibernate spring-data-jpa spring-data jpa-2.1
1个回答
0
投票

修复: 不要使用

setFoos()
;相反,清除后,使用
addAll()
。 换句话说,替换:

            user.getFoos().clear();
            user.setFoos(foos);

            user.getFoos().clear();
            user.getFoos().addAll(foos);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.