hibernate 对象的状态(临时状态,持久化状态,游离状态)

时间:2021-03-13 08:20:36

对象的状态

举例: User   user   = new User();

Hibernate中对象的状态: 临时/瞬时状态、持久化状态、游离状态。

 临时状态

特点:

直接new出来的对象; 

不处于session的管理;

数据库中没有对象的记录;

 持久化状态

当调用sessionsave/saveOrUpdate/get/load/list等方法的时候,对象就是持久化状态。

处于持久化状态的对象,当对对象属性进行更改的时候,会反映到数据库中!

特点:

处于session的管理;

数据库中有对应的记录;

 游离状态

特点

             不处于session的管理;

                   数据库中有对应的记录

                   Session关闭后,对象的状态;

 

对象状态的转换,

@Test
public void test(){
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
User user =new User();//直接new出来的对象 此时数据库中还没有数据 这时的状态是临时状态
user.setUserName("翁宗顺");//当调用session的save/saveOrUpdate/get/load/list等方法的时候,对象就是持久化状态。
session.save(user);//
transaction.commit();
session.close();
System.out.println(user.getUserName);//数据库中有数据 但是session关闭 在使用的对象就是游离状态

}