Hibernate体系结构的简单介绍

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事务。

上一篇:asp.net core microservices 架构之Task 事务一致性 事件源 详解


下一篇:窥探Swift之数组与字典