第四章Hibernate持久化对象的生命周期
第四章 持久化对象的生命周期
- 持久化对象生命周期的状态
- Session对象的"脏"数据检查
- Session接口的核心方法
saveOrUpdate()方法
flush()方法
close()方法- 不可更改的持久化对象
Transient 瞬态 Persistent 持久态 Removed移除态 Detached 脱离态
1.Transient
User user = new User("crazy","HF");
2.Persistent
Session session = new Configuration().configure().buildSessionFactory().openSession(); session.beginTransaction(); User user = new User("crazy","HF"); session.save(user); session.getTransaction().commit();
save之后,user对象从瞬态转为持久态。
3.Detached
Session session = new Configuraion().configure().buildSessionFactory().openSession(); session.beginTansaction(); User user = (User)session.get(User.class,1); session.getTransaction().commit(); user.setName("crazy grass");
此时的user状态为脱离状态。
4.Removed状态
Session session = new Configuration().configure().buildSessionFactory().openSession(); session.beginTransaction(); User user = (User) session.get(User.class,1); session.delete(user); session.getTransaction().commit();
此时的user状态为删除状态。
- Session对象的"脏"数据检查
* Persistent状态的对象受Session的管理,我们对对象的属性值的修改,在Session对象调用close()方法或者Transaction对象执行commit()方法之后,数据库中对应的数据也会跟着同步更新。
Session session = new Configuration().configure().buildSessionFactoy().oepnSession(); session.beginTransaction(); User user = (User)session.get(User.class,1); user.setName("grass"); user.setAddress("HF"); session.getTransaction().commit();
在Session没有提交前,user属于持久态。
- Session接口的核心方法
1 saveOrUpDate()方法
判断给的对象是否有主键值,如果有则update,否则就save。
2 flush()方法
清除缓存的方法,如果获取session的方法是getCurrentSession,则不需要再了。
- 不可更改的持久化对象
所操作的持久化对象是只读的,只进行读取,不进行增加,更新和删除的操作。
相关推荐
jackbon 2020-08-17
flyDeDog 2020-08-06
bluetears 2020-07-28
zghover 2020-07-28
powrexly 2020-07-20
pengpengflyjhp 2020-07-19
zwt00 2020-07-05
sunzxh 2020-07-05
anglehearts 2020-07-05
mengtianbao 2020-06-26
dongCSDN 2020-06-16
王道革 2020-06-14
litterfrog 2020-06-14
jokewinl 2020-06-10
loviezhang 2020-06-08
loveandroid0 2020-06-08
天空一样的蔚蓝 2020-06-04
dongCSDN 2020-06-03
dongCSDN 2020-06-01