评论课
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id")
private User user;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "image_id")
private Image image;
用户类别
@OneToMany(mappedBy = "user", cascade = CascadeType.MERGE, fetch =
FetchType.EAGER)
private List<Comment> comments = new ArrayList<>();
图片类
@OneToMany(mappedBy = "image",cascade = CascadeType.MERGE,fetch =
FetchType.EAGER)
private List<Comment> comments = new ArrayList<Comment>();
这些是我拥有的ManyToOne和OneToMany关系。由于“已将分离的实体传递给持久对象:ImageHoster.model.Comment”错误,因此无法持久保存Comment对象。
答案 0 :(得分:0)
我有点想通了。在我保留Comment对象的CommentRepository类中,我使用.merge而不是.persist
EntityManager em = emf.createEntityManager(); EntityTransaction transaction = em.getTransaction(); 尝试{ transaction.begin(); em.merge(newComment);
而不是em.persist(newComment);