5.hibernate中对象的三种状态:Transient、Persistent和Detached

 1 public class ThreeState {
 2   public static void main(String[] args) {
 3     User u = new User(); //属性:id(对应数据库递增字段),name,age
 4     u.setName("cbirdq");
 5     u.setAge(20); 
 6     //堆内存有u,session缓存没有u,数据库没有u,没有id
 7 
 8     Session session = sessionFactory.getCurrentSession();
 9 
10     session.beginTransaction();
11 
12     session.save(u);
13     //堆内存有u,session缓存有u,数据库有u,有id
14     System.out.println(u.getId());
15 
16     session.getTransaction().commit(); //session关闭,缓存也就没有了
17     
18     //堆内存有u,session缓存没有u,数据库有u,没有有id
19     System.out.println(u.getId());
20   }
21 
22 }

Transient(瞬态的): 刚刚实例化,还没有存入数据库中的实体类对象

Persistent(持久化的): 已经存入到数据库中,在缓存中保存了数据库读取出来的实体类对象

Detached(脱管的): 存入到数据库中,session缓存中没有。

posted @ 2015-06-27 15:34  cbirdq  阅读(162)  评论(0)    收藏  举报