openSession() 与 getCurrentSession () 的区别

openSession() 与 getCurrentSession () 的区别


区别一:
openSession() 获取session需要在最后手动关闭session
getCurrentSession ()是自动关闭session,这种方法必须在hibernate.cfg.xml文件中配置自动session管理(current_session_context_class)的属性值为thread

区别二:
1.openSession() 是获取一个新的session
2.getCurrentSession () 获取和当前线程绑定的session,换言之,在同一个线程中,我们获取的session是同一session,这样可以利于事务控制。
上下文中如果已经有session,就用原来的session,没有的话才创建新的session

你可能感兴趣的:(Hibernate,opensession())