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的工作流程以及三种状态的更多相关文章

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

    Hibernate的工作流程以及三种状态 部分转载自:http://www.cnblogs.com/fifiyong/p/6390699.html Hibernate的工作流程: 1. 读取并解析配置 ...

  2. Hibernate学习2--对象的三种状态以及映射关系的简单配置

    上篇hibernate的博客总体简单梳理了对象持久化的一些思想以及hibernate中对象持久化化的方法,下面说说对象持久化过程的三种状态. 一.hibernate缓存的概念 1.session与缓存 ...

  3. Hibernate中Java对象的三种状态

                                                                                     Hibernate中Java对象的三种 ...

  4. Hibernate 系列 07 - Hibernate中Java对象的三种状态

    引导目录: Hibernate 系列教程 目录 1. Java对象的三种状态 当应用通过调用Hibernate API与框架发生交互时,需要从持久化的角度关注应用对象的生命周期. 持久化声明周期是Hi ...

  5. Hibernate(六)__对象的三种状态

    瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象. 持久(persistent):数据库中有数据与之对应,当前 ...

  6. hibernate(二)一级缓存和三种状态解析

    序言 前一篇文章知道了什么是hibernate,并且创建了第一个hibernate工程,今天就来先谈谈hibernate的一级缓存和它的三种状态,先要对着两个有一个深刻的了解,才能对后面我要讲解的一对 ...

  7. Hibernate学习笔记2.5(Hibernate核心开发接口和三种状态)

    1.configuration(配置信息管理,产生sessionfactory) sessionfactory管理一系列的连接池 opensession 永远打开新的,需要手动close getcur ...

  8. Hibernate之对象的三种状态

    Hibernate之Java对象的三种状态 一.简述 本博文大部分的思想和内容引子CSND上名为 FG2006 这位大神的文章,连接地址为:http://blog.csdn.net/fg2006/ar ...

  9. 1.Git起步-Git的三种状态以及三种工作区域、CVCS与DVCS的区别、Git基本工作流程

    1.Git基础 版本控制系统是一种用于记录一个或多个文件内容变化,以便将来查阅恢复特定版本修订情况的系统. Git是一种分布式版本控制系统(Distributed Version Control Sy ...

随机推荐

  1. MVC原理图解

    注解: 视图中通过Action方法向控制器请求数据 控制器通过view()方法向视图呈现数据

  2. ELK(Elasticsearch/Logstash/Kibana)安装时常见错误总结

    问题一: [2016-11-06T16:27:21,712][WARN ][o.e.b.JNANatives ] unable to install syscall filter: Java.lang ...

  3. springMVC第一天

    这些是springMVC3.2所用到的jar包 web.xml配置 <?xml version="1.0" encoding="UTF-8"?> & ...

  4. spark 中文编码处理

    日志的格式是GBK编码的,而hadoop上的编码是用UTF-8写死的,导致最终输出乱码. 研究了下Java的编码问题. 网上其实对spark输入文件是GBK编码有现成的解决方案,具体代码如下 impo ...

  5. java基础之io流总结二:File类基本应用

    File类的概述: File类是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类保存文件或目录的各种元数据信息,包括文件名.文件长度.最后修改时间.是否可读 ...

  6. java基础之集合:List Set Map的概述以及使用场景

    本文的整体思路以及部分文字来源:来源一 和 来源二 Java集合类的基本概念: 首先大家要明白集合为什么会出现: 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是 ...

  7. CSS简单介绍及应用

    CSS的简介 概述: Cascading Style Sheets, 层叠样式表. 作用: 用来美化页面的. 分类: 行内样式: //直接写在元素(html的标签)中的样式. 内部样式: //写在&l ...

  8. 【总结整理】Edraw Max亿图图示软件快捷键(转)

    Edraw Max亿图图示软件快捷键大全,你想要的都在这了!   用过Edraw Max亿图图示软件的一定知道,亿图是一款功能十分强大的图形图表设计软件.无论是流程图.思维导图.组织结构图.甘特图.网 ...

  9. datatables01 安装、数据源、选中行事件、新增一行数据、删除一行数据

    1 安装 1.1 引入必要文件 要在项目中使用datatables需要引入三个文件 >DataTables CSS >jQuery >DataTables JS <!-- Da ...

  10. Linux中IO监控命令的使用分析

    一篇不错的有关linux io监控命令的介绍和使用. 1.系统级IO监控 iostat iostat -xdm 1    # 个人习惯 %util         代表磁盘繁忙程度.100% 表示磁盘 ...