首页 > 代码库 > Hibernate两种获得sessionFactory方式的区别
Hibernate两种获得sessionFactory方式的区别
Hibernate 可以通过sessionFactory.openSession()和sessionFactory.getCurrentSession()来获得session,下面来浅说一下两者区别。
【sessionFactory.openSession()】
通过session工厂sessionFactory.openSession()方法来获得一个session,每次都创建一个新的session出来,并且每次Hibernate都会打开数据库和应用程序的连接。
【sessionFactory.getCurrentSession()】
通过session工厂的sessionFactory.getCurrentSession()方法获得session,并且与当前线程ThreadLocal绑定,但要在Hibernate中配置属性参数 current_session_context_class ,并且value设置为thread。否则一般会报没有配置当前线程的错误。通过此方式获得session有4个要点:
1)如果当前线程中没有session,通过openSession方法来获得一个新的session,并把新的session放到当前线程中;
2)从当前线程中的到session;
3)通过getCurrentSession()方法执行CRUD必需要开启事务;
4)一般不用手动关闭session;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。