首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于Hibernate的Session和SessionFactory,该怎么处理

2012-01-24 
关于Hibernate的Session和SessionFactory书上说,SessionFactory是非轻量级的,是线程安全的.Session是轻量

关于Hibernate的Session和SessionFactory
书上说,SessionFactory是非轻量级的,是线程安全的.Session是轻量级的,线程安全的.

在网上能看到一个辅助类HibernateUtil.java,不太明白.请大家指点,我应该如何利用此类.

[解决办法]
HibernateUtil这个类就是帮助你建一个SessionFactory,管理Session的
要用session的时候,从这个类里面拿就是了
[解决办法]
好像Session不是线程安全的吧。
HibernateUtil.java其实就是把SessionFactory,Configuration,Session啊封装起来,你想用的时候就直接HibernateUtil.getSession(),想不用的时候就直接HibernateUtil.closeSession(yourSession)。
类比连接池ConnectionPool.
[解决办法]
Session是单例模式,所有单例模式都不是线程安全的(一般名字后面加一个Factory字样,叫工厂模式)
Hibernate只在SessionFactory里使用非安全的单例模式,因为要统一管理配置等重要信息,而Session是SessionFactory创建的,不基于单例模式所以Session是完全安全的。

推荐你学一下Spring的AOP,依赖注入,这种模式比工厂模式优势更多。

热点排行