【问题标题】:Not able to clone entity in Jpa无法在 Jpa 中克隆实体
【发布时间】:2017-11-01 10:09:13
【问题描述】:

我有两个实体。一个实体条件具有与站点的 OneToMany 映射,而其他实体站点具有与条件的 manyToOneMapping。现在我想复制条件及其所有属性更新几个值并将其作为新实体持久保存。

 public class Condition{
    @OneToMany(cascade = CascadeType.ALL,mappedBy = "condition",fetch=FetchType.EAGER)
        private List<Sites> sites;
    }

    public class Sites{
    @ManyToOne(targetEntity=Condition.class,fetch=FetchType.LAZY)
        @JoinColumn(name = "conditionId")
        private condition condition;
    }

在服务层我已经这样做了:-

entityManager.detach(condition);
condition.setId(0L);

conditionRepository.save(condition);

我收到以下错误:-

{
    "timestamp": 1509530470031,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "java.lang.RuntimeException",
    "message": "javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: co.src..entity.condition",
    "path": "/project/reviseProjectDetails"
}

任何对此问题有想法的人请帮助!

【问题讨论】:

    标签: spring hibernate jpa spring-boot


    【解决方案1】:

    @OneToMany 表示一个Sites不能属于两个Condition

    当你这样做时

    entityManager.detach(condition);
    

    您继续拥有sites。您可以尝试使用cascade = CascadeType.DETACH

    【讨论】:

      猜你喜欢
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 2016-03-17
      • 1970-01-01
      • 2019-01-21
      • 2018-02-05
      • 1970-01-01
      相关资源
      最近更新 更多