使用spring data jpa保存分离的对象

时间:2016-07-17 07:32:42

标签: jpa spring-boot spring-data eclipselink

我试图从数据库中获取实体列表,进行更改然后将它们作为新行插入(不更新)。我设法通过自动装配EntityManager并逐个分离对象(也许是批量分离会更好)来做到这一点。但是当我向我的实体添加一个@OneToMany关系并尝试坚持时,我得到了这个:

@OneToMany(cascade = {CascadeType.PERSIST})
@JoinTable(name = "branch",
        joinColumns = @JoinColumn(name = "provinceId"),
        inverseJoinColumns = @JoinColumn(name = "id")
)
private List<Branch> branches;

但是这没有意义,因为Branch有更多的字段/列:

    final List<Province> provinces = provinceRepository.findByVersionId(copyFromVersionId);
    for(Province province : provinces){
        entityManager.detach(province);
        province.setId(null);
        province.setVersionId(id);
        for(Branch branch : province.getBranches()){
            entityManager.detach(branch);
            branch.setId(null);
            branch.setVersionId(id);
        }
    }
    provinceRepository.save(provinces);

这是我省实体中分支的定义:

{{1}}

这是我尝试插入行的代码:

{{1}}

如何将新分支行保存为查询结果的副本?我在这做错了什么?

0 个答案:

没有答案