传递给持久对象的分离实体:一个与ManyToOne关系的类与另外2个类

时间:2019-07-12 19:07:15

标签: jpa

  1. 评论课

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "user_id")
    private User user;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "image_id")
    private Image image;
    
  2. 用户类别

    @OneToMany(mappedBy = "user", cascade = CascadeType.MERGE, fetch = 
    FetchType.EAGER)
    private List<Comment> comments = new ArrayList<>();
    
  3. 图片类

    @OneToMany(mappedBy = "image",cascade = CascadeType.MERGE,fetch = 
    FetchType.EAGER)
    private List<Comment> comments = new ArrayList<Comment>();
    
  4. 这些是我拥有的ManyToOne和OneToMany关系。由于“已将分离的实体传递给持久对象:ImageHoster.model.Comment”错误,因此无法持久保存Comment对象。

1 个答案:

答案 0 :(得分:0)

  1. 我有点想通了。在我保留Comment对象的CommentRepository类中,我使用.merge而不是.persist

    EntityManager em = emf.createEntityManager(); EntityTransaction transaction = em.getTransaction(); 尝试{     transaction.begin();     em.merge(newComment);

  2. 而不是em.persist(newComment);