我在JavaEE中谈论JPA。在我读过的一本书中谈到:
EntityManager em;
em.find(Employee.class, id);
"这是实体管理器在数据库中查找实例所需的所有信息,当调用完成时,返回的员工将是一个管理实体,这意味着它将存在于当前与实体管理器关联的持久化上下文 - pro-ejb3-jpa"。
但我不知道实体什么时候停止管理,如果我想更新,我必须再次管理merge()
,删除......
答案 0 :(得分:4)
默认情况下,持久性上下文绑定到事务。因此,在提交或回滚事务时关闭上下文。一旦关闭,由持久化上下文管理的实体就会变得不受管理。
答案 1 :(得分:3)
有几种情况下实体变得分离,它取决于实体管理器以及持久化上下文如何与它相关联。
正如你所说,Merge将采用一个分离的实体并使其由持久化上下文管理,基本上一个分离的对象是一个特殊状态的对象,它不由任何EntityManager管理,但仍然代表数据库中的对象。 / p>
基于他们在下面评论并根据规格
如果X是分离的实体,则将X的状态复制到预先存在的管理实体实例X'相同的身份或新的托管副本X'创建了X