Java 什么时候应该使用EntityManger分离方法?
我有以下代码,其中em是EntityManager:Java 什么时候应该使用EntityManger分离方法?,java,jpa,entitymanager,Java,Jpa,Entitymanager,我有以下代码,其中em是EntityManager: Query query = em.createQuery( "SELECT e FROM TODO e " ); ret = (TODO) query.getSingleResult(); em.detach( ret ); return ret; 一旦我从这个方法返回ret(并离开类),实体管理器不会分离吗?为什么我需要使用detach方法 事务结束时自动分离实体。 有时,您希望在之前分离实体,因为您希望在实体中进行更改,而您不希望自动持
Query query = em.createQuery( "SELECT e FROM TODO e " );
ret = (TODO) query.getSingleResult();
em.detach( ret );
return ret;
一旦我从这个方法返回ret(并离开类),实体管理器不会分离吗?为什么我需要使用detach方法 事务结束时自动分离实体。
有时,您希望在之前分离实体,因为您希望在实体中进行更改,而您不希望自动持久化该实体。我将在将实体交给用户方法(可能是回调方法)之前分离该实体,因为该回调方法预期能够访问(读取),但不要在我的事务处理过程中影响/更改对象。当会话关闭时,它将分离。例如,如果要在数据库中不反映更改的情况下对其进行修改,则需要分离该实体。另一个原因可能是将该实体传递给另一个线程。