Hibernate体系结构
上图来自hibernate官网。各对象的意义如下:
SessionFactory :Hibernate关键对象,它是单个数据库映射关系经过编译后的内存对象,线程安全。用于生成Session的工厂,本身要用到ConnectionProvider。
Session:Hibernate另一个重要对象,它是应用与持久化层交互的单线程对象。隐藏了JDBC连接,是Transaction的工厂,并且包含一个一级缓存。
持久化对象:应用创建pojo实例后,一旦与特定的Session关联,并对应数据表的指定记录,此对象就处于持久化状态,这一系列对象都被称为持久化对象。在应用中,对持久化对象的任何修改都会被转换成持久层的修改。
瞬态对象和托管对象:系统通过new关键字创建的pojo对象,未和Session关联,此时处于瞬态。一个曾经持久化过的对象,因为Session关闭则会转化成托管状态。
事务(Transaction):代表一次原子操作,和数据库的事务类似。
连接提供者(ConnectionProvider):生成JDBC连接的工厂,具备连接池的作用。
事务工厂(TransactionFactory):生成Transaction实例对象的工厂。