本文介绍了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:检查实体对象是否已被持久化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!