Hibernate检测对象是否是具有并发持久性的瞬态

DD.*_*DD. 3 java hibernate

我需要检测一个对象是否是瞬态的..如果不是我想通过Hibernate更新.

通常我通过检查id是否已设置来执行此操作但我担心这不是线程安全的我有另一个线程正在保存对象并且可能没有设置id但是Hibernate已经在保存的过程中物体.

我怎样才能以线程安全的方式做到这一点?

谢谢.

public void updateIfNotNew(PersistentObject a){
//if another object is in the process of saving....this update will not get persisted
    if (a.id!=null){  
        session.update(a);
     }
}
Run Code Online (Sandbox Code Playgroud)

Muh*_*riq 8

我建议你在org.hibernate.Session那里找到你可以找到方法所包含的接口,这个方法将查看它与该会话相关的给定对象(持久性),如果不是,并不意味着它已经分离,因为它可能与其他会话如果有的话.