HibernateSessionFactory里取session用的是单例模式。 
不是说 session 单例 。 而是说 HibernateSessionFactory 单例。
也就是SessionFactory 单例 因为这个是hibernate 的重量级缓存。一般只要加载一次。
通过HibernateSessionFactory取得的session是通过工厂生产的。不是单例,每次取出的都是
不同的session (session缓存是轻量级的)

解决方案 »

  1.   

    lz  取两个不同的session  不妨 自己在HibernateSessionFactory 扩展一个方法 Java code    public static Session getAnotherSession() throws HibernateException{ if (sessionFactory == null) { rebuildSessionFactory(); } return sessionFactory.openSession(); }下面代码通过测试 结果为 false; false;Java code    Session session1= HibernateSessionFactory.getSession(); Session session2 = HibernateSessionFactory.getAnotherSession(); Session session3 = HibernateSessionFactory.getAnotherSession(); System.out.println(session1==session2); System.out.println(session2==session3);
    这样即可以保证 SessionFactory 不被重复加载 。又可以在同一线程下获得任意多个 session