jinfeng_wang

G-G-S,D-D-U!

BlogJava 首页 新随笔 联系 聚合 管理
  400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

hibernate实现了《企业应用架构模式》第11章的许多模式,结合起来则更能理解hibernate的session的作用。只是双方的一些术语未必能直接对应上。
===========
Session接口

Session(会话)接口是Hibernate应用使用的主要接口。会话接口的实例是轻量级的并且创建与销毁的代价也不昂贵。这很重要因为你的应用可能始终在创建与销毁会话,可能每一次请求都会如此。Hibernate会话并不是线程安全的因此应该被设计为每次只能在一个线程中使用。

 

Hibernate会话是一个介于连接和事务之间的概念。你可以简单地认为会话是对于一个单独的工作单元已装载对象的缓存或集合。Hibernate可以检测到这个工作单元中对象的改变。我们有时也将会话称为持续性管理器,因为它也是与持续性有关的操作例如存储和取出对象的接口。注意,Hibernate会话与Web层的HttpSession没有任何关系。当我们在本书中使用会话时,我们指的是Hibernate会话。为了区别,有时我们将HttpSession对象称为用户会话。

 

SessionFactory接口

应用从SessionFactory(会话工厂)里获得会话实例。与会话接口相比,这个对象不够令人兴奋。

 

会话工厂当然不是轻量级的!它打算在多个应用线程间进行共享。典型地,整个应用只有唯一的一个会话工厂——例如在应用初始化时被创建。然而,如果你的应用使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。

 

会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。它也保存了在一个工作单元中读入的数据并且可能在以后的工作单元中被重用(只有类和集合映射指定了这种二级缓存是想要的时才会如此)。


posted on 2005-04-05 11:13 jinfeng_wang 阅读(1204) 评论(0)  编辑  收藏 所属分类: hibernateOther

只有注册用户登录后才能发表评论。


网站导航: