内容简介:hibernate教程--持久化类状态详解
一、 Hibernate的持久化类状态:
1.1 Hibernate的持久化类状态
持久化类:就是一个实体类 与 数据库表建立了映射.
Hibernate为了方便管理持久化类,将持久化类分成了三种状态.
瞬时态 transient:(临时态)
持久态 persistent:
脱管态 detached:(离线态)
1.2 三种持久化对象的状态:
Transient瞬时态:
特点:持久化对象没有唯一标识OID.没有纳入Session的管理.
Persistent持久态:
特点:持久化对象有唯一标识OID.已经纳入到Session的管理.
结论: 持久化持久态对象有自动更新数据库的能力.
Detached脱管态:
特点:持久化对象有唯一标识OID,没有纳入到Session管理.
1.3 区分三种持久化对象的状态:
@Test // 区分持久化对象的三种状态: public void demo1(){ // 1.创建Session Session session = HibernateUtils.openSession(); // 2.开启事务 Transaction tx = session.beginTransaction(); // 向数据库中保存一本图书: Book book = new Book();// 瞬时态:没有唯一标识OID,没有与session关联. book.setName("Hiernate开发"); book.setAuthor("XX"); book.setPrice(65d); session.save(book); // 持久态:有唯一标识OID,与session关联. // 3.事务提交 tx.commit(); // 4.释放资源 session.close(); book.setName("Struts2开发"); // 脱管态:有唯一的标识,没有与session关联. }
1.4 三种状态对象转换:
1.4.1、瞬时态:
获得 :
Book book = new Book();
瞬时--->持久
* save(book);
* save()/saveOrUpdate();
瞬时--->脱管
* book.setId(1);
1.4.2、持久态:
获得:
Book book = (Book)session.get(Book.class,1);
* get()/load()/find()/iterate();
持久--->瞬时:
* delete(book);
* 特殊状态:删除态.(被删除的对象,不建议去使用.)
持久--->脱管 :
* session.close();
* close()/clear()/evict();
1.4.3、脱管态:
获得:
Book book = new Book();
book.setId(1);
脱管--->持久:
* session.update();
* update()/saveOrUpdate()/lock()
脱管--->瞬时:
* book.setId(null);
1.5 持久态对象有自动更新数据库的能力;
@Test // 测试持久态的对象自动更新数据库 public void demo2(){ // 1.创建Session Session session = HibernateUtils.openSession(); // 2.开启事务 Transaction tx = session.beginTransaction(); // 获得一个持久态的对象. Book book = (Book) session.get(Book.class, 1); book.setName("Struts2开发"); // session.update(book); // 3.提交事务 tx.commit(); // 4.关闭资源 session.close(); }
以上所述就是小编给大家介绍的《hibernate教程--持久化类状态详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Redis持久化存储详解(一)
- Redis RDB 持久化详解
- Redis AOF 持久化详解
- hibernate教程--持久化类状态详解
- Redis 专题:万字长文详解持久化原理
- 有效避免数据丢失!Redis持久化方案选择详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
How to Build a Billion Dollar App
George Berkowski / Little, Brown Book Group / 2015-4-1 / USD 24.95
Apps have changed the way we communicate, shop, play, interact and travel and their phenomenal popularity has presented possibly the biggest business opportunity in history. In How to Build a Billi......一起来看看 《How to Build a Billion Dollar App》 这本书的介绍吧!