相关疑难解决方法(0)

使用JPA entityManager时,为什么在删除之前必须合并?

有一段时间我一直在想为什么在使用JPA时,我是否必须编写我的删除方法:

@Transactional
public void delete(Account account)
{
    if (entityManager.contains(account))
    {
        entityManager.remove(account);
    }
    else
    {
        entityManager.remove(entityManager.merge(account));
    }
}
Run Code Online (Sandbox Code Playgroud)

也许不需要包含,因为事务以此方法开始和结束,但我仍然想知道为什么删除不能只是取一个非托管对象.是因为需要对其进行管理才能知道该对象的id是什么?任何其他见解都会很棒.我只是想了解JPA删除的方法和原因.

merge jpa entitymanager jpa-2.0

9
推荐指数
1
解决办法
6379
查看次数

标签 统计

entitymanager ×1

jpa ×1

jpa-2.0 ×1

merge ×1