第一节 Hibernate 实体类的三种状态
1.1 状态介绍
- 实体Entity有三种状态:瞬时状态、持久状态、托管状态
- 瞬时状态:transient, session没有缓存,数据库也没有记录,oid没有值
- 持久状态:persistent, session有缓存, 数据库也有记录,oid有值
- 脱管状态/游离状态:detached,session没有缓存,数据库有记录,oid有值
1.2 瞬时 转 持久
- 新创建的一个对象,经过save,或者savaOrUpdate调用后,会变成持久状态
package com.it.hibernate.test;
import com.it.hibernate.domain.User;
import com.it.hibernate.uitls.HibernateUtils;
import org.hibernate.Session;
import org.junit.Test;
public class Demo3 {
@Test
public void test3(){
Session session = HibernateUtils.openSession();
session.getTransaction().begin();
User user = new User("shu","123");
session.save(user);
session.getTransaction().commit();
session.close();
}
}

@Test
public void test4(){
Session session = HibernateUtils.openSession();
session.getTransaction().begin();
User user = new User("shu02","123");
session.save(user);
System.out.println(user);
User user1 = (User) session.get(User.class,2);
System.out.println(user1);
session.getTransaction().commit();
session.close();
}

1.3 持久 转 托管
- load、get返回的对象是持久状态的,当session关闭或者清除后,对象变成托管状态
@Test
public void test5(){
Session session = HibernateUtils.openSession();
session.getTransaction().begin();
User user1 = (User) session.get(User.class,2);
System.out.println(user1);
User user2 = (User) session.get(User