hibernate的session是线程安全的吗 如果不安全,请问在并发的时候怎么控制安全和高效直接通过Session session = HibernateSessionFactory.getSession();来获取sesion,每个方法执行的时候都去获取session,这样是否会引发线程不安全的问题呢?望高手指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&q=hibernate+session+%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8&aq=0&aqi=g2&aql=&oq=hibernate+session+%E7%BA%BF%E7%A8%8B&gs_rfai= 不要用这种方式来做..这样获取到的sesssion不在spring管理中,需要手动控制他的释放. 用getHibernateTemplate()的方式来做吧. hibernate session 是线程安全的,所以不需要回答你的第2个问题Session session = HibernateSessionFactory.getSession();只会获得本地线程的session不同线程取到的session是不一样的,原理是基于ThreadLocal实现这个你可以测试一下,看看每个线程取到的session是否同一个 我是这样理解的.首先肯定的是session是线程安全的,所以不用考虑线程的问题,我们只需要考虑效率的问题.我有一个疑惑,session为什么要使用单例模式.sessionFactory是一个应用里只存在一个.但是session不是吧.在一个应用中可能存在多个session啊,我看了些网上的文章,很多人都用单例模式创建session,这个对么? Hibernate中两个缓存,sessionFactory是重量级的,线程安全,也叫一级缓存session是轻量级的,线程不安全,也叫二级缓存Session的使用原则就是一个线程一个session,session一次一个事务通过Threadlocal类可以把session绑定在当前线程上,也可以直接通过hbm配置文件设定current_session_context_class-thread然后通过SessionFactory.getCurrentSession()获得 自己说的“一个线程一个session”,然后又说线程不安全那。。无语了 因为session在多线程下不安全,所以才尽量保证一个session只被一个线程使用啊 我指的使用原则是指你要怎么去用session,而不是session自身就带有的。就像说equals相等hashcode必须相等是一个使用原则,是指程序员要遵守而不是系统已经帮你设定好了 jquery.post里的回调函数怎么将后台的数据回调到前台呢 帮忙个啊。。。 求解决Hibernate操作clob问题 hibernate的问题 lucnene 中文同音字如何搜索 [在线等]struts tablib 的问题 请问用JUnit怎样测试包内可见的东西? 请问J2EE(Java)中如何调用CORBA组件? java scjp证书对找工作(在西安)有帮助吗? 奇怪的问题:为什么找不到EJB呢?(急!) 小屁孩求教! 获求国内使用JAVA语言的大中型公司
用getHibernateTemplate()的方式来做吧.
Session session = HibernateSessionFactory.getSession();只会获得本地线程的session
不同线程取到的session是不一样的,原理是基于ThreadLocal实现
这个你可以测试一下,看看每个线程取到的session是否同一个
sessionFactory是重量级的,线程安全,也叫一级缓存
session是轻量级的,线程不安全,也叫二级缓存Session的使用原则就是一个线程一个session,session一次一个事务通过Threadlocal类可以把session绑定在当前线程上,
也可以直接通过hbm配置文件设定current_session_context_class-thread
然后通过SessionFactory.getCurrentSession()获得
那。。无语了