1,SessionFactory
Hibernate的关键对象,它是单个数据库映射关系经过编译后的内存镜像,是线程安全的。它是生成Session的工厂,本身要用到ConnectionProvider。该对象可以在进程或集群的级别上,为那些事物之间可以重用的数据提供可选的二级缓存。
2,Session
应用程序与持久化存储层之间交互操作的一个单线程对象。同样是Hibernate中持久化操作的关键对象,所有的持久化对象必须在session管理下才可以进行持久化操作。它的生存期较短,并隐藏了JDBC连接,也是Transaction的工厂。Session对象有一个一级缓存,显式执行flush之前,所有持久化操作的数据都缓存在session对象里面。
3,持久化对象
系统创建的POJO实例,一旦与特定的session关联,并对应成数据表的指定记录,该对象就处于持久化状态,这一系列对象都被称为持久化对象。在程序中对持久化对象执行修改,都将自动被转换为持久层的修改。持久化对象完全可以是普通的javabean/POJO,唯一特殊的是他们正与一个session关联。
4,瞬态对象
系统通过new关键字创建的java实例,没有与session相关联,此时处于瞬态。瞬态实例可能是在被应用程序实例化后,尚未进行持久化的对象。
5,脱管对象
一个曾经持久化过的实例,因为session关闭后则转化为脱管状态,即为脱管对象。
6,事务
代表一次原子操作,它具有数据库事务的概念,但它通过抽象,将应用程序从底层具体的JDBC、JTA以及CORBA事务中隔离开。某些情况下,一个session之内可能包含多个Transaction对象。虽然事务操作是可选的,但所有持久化操作都应该在事务管理下进行,即使是只读操作。
7,连接提供者(ConnectionProvider)
生成jdbc连接的工厂,同时具备连接池的作用。它通过抽象将应用从底层的Datasource或DriverManager隔离开。这个对象无需应用程序直接访问,仅在应用程序需要扩展时应用。
8,事务工厂(TaansactionFactory)
生成Transaction对象实例的工厂。该对象也无须应用程序直接访问。
笔记出处:整合struts+hibernate+spring应用开发详解 李刚