读书人

Hibernate事宜的高级应用

发布时间: 2012-11-03 10:57:44 作者: rapoo

Hibernate事务的高级应用

第一步:创建静态成员

在HibernateUtil类中我们需要定义一个静态的成员变量用于保存当前线程共用的Session :

private static ThreadLocal<Session>sessionLocal = newThreadLocal<Session>();

第二步:修改获取session的方法

改造HibernateUtil类的获取Session方法:

getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭

添加HibernateUtil类中清除线程容器Session的方法:(这个方法是使用openSession创建session时使用的)

   /**   * 关闭当前线程容器中的SESSION   */  public static void closeSession() {     Session s = sessionLocal.get();      if (s != null) {             // 清除当前线程容器中的SESSION      sessionLocal.set(null);      }  }

读书人网 >Web前端

热点推荐