【问题标题】:When should I use the EntityManger detach method?什么时候应该使用 EntityManager 分离方法?
【发布时间】:2013-07-16 18:16:47
【问题描述】:

我有以下代码,其中 em 是 EntityManager:

Query query = em.createQuery( "SELECT e FROM TODO e " );
ret = (TODO) query.getSingleResult();
em.detach( ret );
return ret;

一旦我从这个方法返回 ret(并离开班级),实体管理器不会分离吗?为什么我需要使用分离方法?

【问题讨论】:

  • 会话关闭时它将分离。例如,如果您想修改它而不将更改反映在数据库中,您可能希望分离实体。
  • 另一个原因可能是将实体传递给另一个线程。

标签: java jpa entitymanager


【解决方案1】:

我将在将实体交给用户方法(可能是回调方法)之前将其分离,因为该回调方法预计能够访问(读取),但不会在我的过程中影响/更改对象交易。

【讨论】:

    【解决方案2】:

    交易结束时实体自动分离。 有时你想分离一个实体,因为你想对实体进行更改,而你不想自动持久化。

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 2023-04-02
      • 2011-04-15
      • 2017-04-10
      • 2012-03-19
      • 2018-05-12
      相关资源
      最近更新 更多