持久化的三种状态
hibernate是持久层类型框架,通过持久化类完成ORM框架操作,hibernate为了更好的管理持久化类,将持久化类分为三种状态:持久化类 = java类 + 映射
瞬时态
- 这种对象没有唯一的标识OID,没有session管理,称为瞬时态对象
持久态
- 这种对象有唯一标识OID,被session管理,称为是持久态对象
*持久化类的持久态的对象,可以自动更新数据库
脱管态
- 这种对象有唯一的标识OID,没有被session管理,称为脱管态对象
如何区分三种状态对象
持久化类的状态转换
瞬时态对象
- 瞬时态对象
- 获得
- Customer customer = new Customer ();
- 状态转换
- 瞬时-》持久
- save(Object obj)、saveOrUpdate(Object obj);
- 瞬时-》托管
- customer.setCust_id(1)
- 瞬时-》持久
- 获得
- 持久态对象
- 获得
- get()、load()、find()、iterate()
- Customer customer = session.get(Customer.class,1l);
- 状态转换
- 持久-》瞬时
- delete();
- 持久-》脱管
- close()、clear()、 evict(Object obj);
- 持久-》瞬时
- 获得
- 脱管态对象
- 获得
- Customer customer = new Customer (); customer 。set_id(1);
- 状态转换
- 脱管-》持久
- update()、saveOrUpdate(Object obj);
- 脱管-》瞬时
- customer .setid(null);
- 脱管-》持久
- 获得