Java 提交后hibernate对象处于什么状态?

Java 提交后hibernate对象处于什么状态?,java,hibernate,session,Java,Hibernate,Session,阅读本教程 会话结束后,持久性对象将设置为分离对象 我的问题是,如果在第一次提交之后但在关闭会话之前开始另一个事务,会发生什么情况。此时用户对象处于什么状态 public static void main(String[] args) { System.out.println("Maven + Hibernate + Oracle"); Session session = HibernateUtil.getSessionFactory().openSession();

阅读本教程

会话结束后,持久性对象将设置为分离对象

我的问题是,如果在第一次提交之后但在关闭会话之前开始另一个事务,会发生什么情况。此时用户对象处于什么状态

public static void main(String[] args) {
    System.out.println("Maven + Hibernate + Oracle"); 
    Session session = HibernateUtil.getSessionFactory().openSession();   
    session.beginTransaction();
    DBUser user = new DBUser(); //creating transient object
    user.setUserId(104); 
    user.setUsername("user1");
    user.setCreatedBy("system");
    user.setCreatedDate(new Date());  
    session.saveOrUpdate(user);  //Updating the transient object to persistence object
    session.getTransaction().commit(); 

    session.beginTransaction();
    user.setUsername("user2"); //what state is user object in right now?
    session.saveOrUpdate(user);
    session.getTransaction().commit();
    session.close();
}

将实体附加到关联的Hibernate会话后,它将保持为托管对象,直到实例从Hibernate会话缓存中退出或会话关闭


也就是说,如果您在关闭会话或退出会话的托管对象之前创建了一个附加事务,则该实体将继续由会话管理和跟踪。这意味着您可以在后续事务中继续使用事务1中保存的实体,而不会出现任何问题,因为只要您的后续事务使用相同的Hibernate会话,该实体仍处于管理状态。

该实体处于
管理状态


如果您仍在相同的
会话中,则对象仍应被附加。对不起,我不熟悉“附加”。这和暂时性的是同一件事吗?它仍然会被连接