Hibernate体系结构的简单介绍

1.SessionFactory:

  单个数据库映射关系经过编译后的内存镜像,是线程安全的。它是生产Session的工厂,本身需要依赖于ConnectionPeovider。该对象可以在进程或者集群的级别上,为事务之间可以重用的数据提供二级缓存。

2.Session:

  是应用程序与持久层之间相互操作的一个单线程对象。同时他也是Hibernate持久化操作的关键对象,所有的持久化操作对象必须在Session的管理下才能进行持久化操作。在它的底层封装了JDBC连接,他也是Transaction的工厂。Session持有必选的一级缓存,在显示执行flush前,所有的持久化操作的数据都在Session对象处。

3.持久化对象(PO):

  系统创建的POJO实例,一旦与特定的Session关联,并对应数据表的指定记录,该对象就处于持久化状态,这一系列对象都被成为持久化对象。在程序中对持久化对象的修改都会自动被转化为对持久层的修改。持久化对象完全可以是一个普通的JavaBeans/POJO唯一的区别在于他们是否正与一个Session关联。

4.瞬态对象:

  系统通过new关键字创建的Java实例,并未与Session关联,此时该对象处于瞬态。

5.脱管对象:

  一个曾经被持久化过的实例,如果与其关联的Session被关闭,该对象则处于脱管状态。

6.事务(Transation):

  代表一次原子操作,它具有数据库事务的概念。Hibernate事务是对底层具体的JDBC、JTA以及CORBA事务的抽象。某些情况下一个Session会包含许多个Transation对象。所有的持久化操作都应该在事务管理下进行。

7.连接提供者(ConnectionProvider):

  生成JDBC连接的工厂,通过抽象把应用程序与底层的DriverManager或者DataSource隔离开。

8.事务工厂(TransationFactory):

  生成Transation对象实例的工厂。无须应用程序直接访问。负责对底层具体事务实现进行封装,将底层的具体事务抽象成Hibernate事务。

最新文章

  1. [从产品角度学EXCEL 02]-EXCEL里的树形结构
  2. c中的进制与内存分析
  3. 【BZOJ-1497】最大获利 最大流
  4. hadoop启动后jps没有namenode(转)
  5. Area Under roc Curve(AUC)
  6. 纯JavaScrip图表插件——Highcharts
  7. What's this?(js)
  8. window.applicationCache事件,介绍
  9. access数据库管理软件收集下载
  10. java排序算法-交换排序
  11. BZOJ1662: [Usaco2006 Nov]Round Numbers
  12. ubuntu-17.10 安装 FANN
  13. 自学Zabbix3.3-一个简单例子 添加Hosts并应用模板
  14. nova系列二:kvm介绍
  15. Win10系列:C#应用控件基础9
  16. 【Oracle安装卸载】oracle卸载
  17. 发送邮件【文本-html】【图片】【邮件】【附件】
  18. hdu 4407 容斥原理
  19. USBDM Kinetis Debugger and Programmer
  20. java去除数组中重复的元素方法总结

热门文章

  1. 安装Elasticsearch,Logstash,Kibana(5.0.1-mac版)
  2. 夺命雷公狗---node.js---15之加密
  3. bootstrap, boosting, bagging 几种方法的联系
  4. Report launcher to run SSRS report subscriptions on demand
  5. NOIP200205均分纸牌
  6. 使用 Delphi Xe 的 TDictionary
  7. V4L2应用程序框架--一【转】
  8. Table Properties [AX 2012]
  9. oralce创建用户
  10. windows7配置Nginx+php+mysql的详细操作是怎样?