Hibernate学习之---Hibernate的体系结构

时间:2022-08-14 09:00:42

Hibernate Session,只有处于Session管理下的POJO才有持久化操作的能力。当应用程序处于Session管理下的POJO实例执行操作时,Hibernate将这种面向对象的操作转换为持久化操作。
Hibernate需要一个hibernate.cgf.xml文件,该文件用于配置Hibernate和数据库的连接信息。除此之外,还需要在POJO类中增加持久化注解,POJO中的持久化注解管理持久化类和数据表、数据列之间的对应关系。

  • SessionFactory:这是Hibernate的关键对象,它是单个数据库映射关系经过编译后的内存镜像,也是线程安全的。它是生成Session的工厂,本身需要依赖于ConnectionProvider。
  • Session:它是应用程序与持久化存储层之间交互操作的一个单线程对象。它也是Hibernate持久化操作的关键对象,所有的持久化对象必须在Session管理下才可以进行持久化操作。
  • 持久化对象:系统创建的POJO实例,一旦与特定的Session关联,并对应数据表的指定记录,该对象就处于持久化状态,这一系列对象都被称为持久化对象。
  • 瞬态对象和脱管对象:系统通过new关键字创建的Java实例,没有与Session相关联,此时处于瞬态。瞬态实例可能是在被应用程序实例化后,尚未进行持久化的对象。如果一个曾经持久化过的实例,如果Session被关闭则转换为脱管状态。
  • 事务:虽然事务操作时可选的,但所有持久化操作都应该在事务管理下进行,即使是只读状态。
  • 连接提供者:它是生成JDBC连接的工厂,它通过抽象将应用程序与底层的DataSource或DriverManager隔离开。
  • 事务工厂:它是生成Transaction对象实例的工厂。该对象也无须应用程序直接访问。它负责对底层具体的事务实现进行封装,将底层具体的事务抽象成Hibernate事务。