Hibernate的工作流程以及三种状态(面试题)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate的工作流程以及三种状态(面试题)相关的知识,希望对你有一定的参考价值。

Hibernate的工作流程:

1. 读取并解析配置文件

2.读取并解析映射信息,创建SessionFactory 

3. 打开Sesssion 

4.创建事务Transation 

5. 持久化操作

6.提交事务 

7.关闭Session 

8. 关闭SesstionFactory 

 

技术分享

 

 

Hibernate中bean 的三种状态

 

Hibernate对象分为三种状态:瞬时态(new 出来的或者实例化时session无关的),

持久态(session关联)与游离态(曾经与session关联)。其中持久态的对象是PO

,瞬时态、托管态的对象可作为VO。(PO不应该直接用作v层)所以在使用中应该注意三态的转化。

如:

在进行数据操作的一系列过程中,save或者saveorupdate操作可以把瞬时态或者游离态的对象转换成持久态,而

delete或者session的close、flush等操作将会把session相关联的持久态对象转换成游离态。

 

 

Hibernate对象的状态和生命周期

 

使用new操作符初始化的对象是一个瞬时态的(Transient)

(没有任何跟数据库表相关联的行为,只要应用不再引用这些对象,它们的状态就会丢失,并由垃圾回收机制回收);

瞬时态对象经过save(),saveOrUpdate会转换成持久态,由session统一管理,持久态对象的操作与数据库同步;

持久态对象经过evict(),close(),clear()等会转换成游离态,这时虽然被持久化,但是不在session缓存中,通过

lock(),update(),saveOrUpdate又会转换成持久态。 通过get(),load(),find(),iterate()

获得的对象直接就是持久态的。

 

技术分享

 

 
 

以上是关于Hibernate的工作流程以及三种状态(面试题)的主要内容,如果未能解决你的问题,请参考以下文章

Struts+Hibernate+Spring面试题合集及答案

Hibernate三种状态,缓存,以及update更新问题

Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用 ----转----

Hibernate三种装套,缓存,以及update更新问题

深入hibernate的三种状态

Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用