异常:java.lang.IllegalArgumentException: Removing a detached instance 的解决办法java.lang.IllegalArgumentException: Removing a detached instance 的解决办法
方法一:
这是因为试图删除一个已经死亡的实例引起的,我的删除代码是这么写的
public void delete(Book o) { this.getJpaTemplate().remove(o); }
改成下面的样子就行了,也就是先merge,再删除
public void delete(Book o) { Book book = getJpaTemplate().merge(o); getJpaTemplate().remove(book); }
这样改过之后,问题就解决了。
类似的问题也存在与更新方法
public void save(Book o) { Book book = this.getJpaTemplate().merge(o); this.getJpaTemplate().persist(book); }
方法二:\
删除前先UPDATE 一下
方法三:
protected EntityManager em;
public void clearData() { em.flush(); em.clear(); }
--转自