检查实体对象是否已被持久化

检查实体对象是否已被持久化

本文介绍了JPA:检查实体对象是否已被持久化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有一般方法可以

 if(entity is persisted before){
     entity = entity.merge();
 }else{
     entity.persist();
 }

所以包含上述逻辑的方法到处都是安全的?

So the method contain above logic is safe everywhere?

推荐答案

如果你需要知道对象已经存在于持久化上下文中,你应该使用包含方法 EntityManager

If you need to know is object already in persistence context you should use contains method of EntityManager.

只有 EntityManager 可以告诉你实体是否持久化或者没有,实体没有这样的信息。

Only EntityManager can tell you is entity persisted or not, entity does not have such information.

在这里你可以检查javadoc 。

Here you can check javadoc for contains method.

if (!em.contains(entity)) {
  em.persist(entity);
} else {
  em.merge(entity);
}

这篇关于JPA:检查实体对象是否已被持久化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-03 08:48