hibernate中的getCurrentSession()有什么具体用处? 小弟有个问题请教各位。hibernate中的getCurrentSession()在项目中具体有什么用处?相对与过去的方法有什么优越性? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嗯,主要是在事务这块的,需要在Hibernate的cfg文件中配置本地线程,保证登录后getCurrentSession()得到的是同一个Session,控制事务就方便多了。因为得到的都是同一个线程上的Session getCurrentSession()得到当前线程的session而其不需要关闭。主要用于事务 去看看threadlocal吧。不然也说不清楚。 就是得到当前引用的session,如果一直用这个方法,能保证所有的session都是同一个,这样可以避免多session操作时,不同session中对象状态不一致等问题,而且节省很多数据库的连接开支。当然也有不好的地方,由于是同一个session,容易造成session在各个线程中的同步问题。也由于只有一个session,在request并发量很大的时候就效率会相对变低。 sessionFactory.getCurrentSession() 只要你持有SessionFactory,大可在任何时候、任何地点调用这个方法。getCurrentSession()方法总会返回“当前的”工作单元。 getCurrentSession()的功能要从ThreadLocal类说起,ThreadLocal是一个线程作用范围的对象,就是说保存在他中的对象的生命周期是一个线程,Spring调用该方法后会将打开的Session放入ThreadLocal中进行保存,然后通过getCurrentSession()方法返回保存的Session对象,这样在一次请求(一个线程)中调用getCurrentSession()就都会从ThreadLocal中取出保存的Session对象,这样就保障了一次请求(一个线程)中使用的都是同一个Session对象了,可以保障事务操作的特性,像数据一致性和数据安全性等。希望对楼主有帮助。 jsp页面中连接图片显示不出来。怎么办? 注册问题 杭州的朋友来帮忙下 如何编写xml解析器 java如何下载Wps、及txt文档?(急、急、急!) 高分求高手帮忙!!!紧急的! 求助 JBuilderX+weblogic8.1+oracle9i,连接数据库出现的问题,恳请帮忙!!! 路径没错 我想用jb5做ejb该怎样配置我的系统,还有需要一些什么知识? 急求一个Hibernate的映射配置 javamail发邮件出现Sending failed because of invalid destination addresses
如果一直用这个方法,能保证所有的session都是同一个,这样可以避免多session操作时,不同session中对象状态不一致等问题,而且节省很多数据库的连接开支。
当然也有不好的地方,
由于是同一个session,容易造成session在各个线程中的同步问题。
也由于只有一个session,在request并发量很大的时候就效率会相对变低。
只要你持有SessionFactory,大可在任何时候、任何地点调用这个方法。getCurrentSession()方法总会返回“当前的”工作单元。