getHibernateTemplate().getSessionFactory().getCurrentSession()

本文主要是介绍getHibernateTemplate().getSessionFactory().getCurrentSession(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述:使用getHibernateTemplate().getSessionFactory().getCurrentSession()获取Session执行HSQL时,出现No Hibernate Session bound to thread, and configuration does not allow错误时。

使用Spring进行事务管理,相关的service事务配置没有生效。

   <tx:advice id="advice" transaction-manager="transactionManager"><tx:attributes><tx:method name="get*" isolation="REPEATABLE_READ"propagation="REQUIRED" read-only="true" />     </tx:attributes></tx:advice>

-------------------------------------------------------------------------------------------------------------------------<aop:config>
          <aop:pointcut expression="execution(* com.example.service.*.*(..))" id="ponint" />

           <aop:advisor advice-ref="advice" pointcut-ref="ponint" />

</aop:config>

同时纳入spring声明式事务管理的session,使用getHibernateTemplate().getSessionFactory().getCurrentSession()方式获取时,不能主动执行session.close(),否则会报错hibernateexception session is closed

这篇关于getHibernateTemplate().getSessionFactory().getCurrentSession()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933071

相关文章

Hibernate之openSession和getCurrentSession

在Hibernate之基础配置测试用例中已经用到了openSession; 开启hibernate会话的方式: //读取hibernate.cfg.xml文件//Configuration方法默认加载hibernate.properties;configure方法默认加载hibernate.cfg.xmlConfiguration cfg = new Configuration().c

getHibernateTemplate().saveOrUpdate(t)可以插入不能更新

我自己在测试毕业设计的时候,保存和更新使用的是同一个方法,老是更新不上去,不晓得怎么回事,没事就百度百度,GoogleGoogle 看看 hibernate 实体对象有三种状态 自由状态(Transient) 持久状态(Persistent) 游离状态(Detached) 关于这三种状态的区别: P状态 即跟session实例关联了 已经有了相对应的数据库中的主键值,所以对象处于该状

spring和hibernate整合使用getCurrentSession方法

spring和hibernate整合使用getCurrentSession()方法获得session实例时,一定记得在sessionFactory的bean中添加<prop key="hibernate.current_session_context_class">thread</prop>,如果你的事务时交给spring管理的,则就不要配置,不然就会报错:the save is not vali

hibernate中SessionFactory.opensession()与getcurrentsession()的区别

1. getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭 3. 注意:1,使用 SessionFactory.getCurrentSession() 需要在 hibernate.cfg.xml 中如下配置:     如果

hibernate 中Sessionfactory的getCurrentSession与openSession的区别

Configuration cfg = new Configuration();  // 获得配置信息对象    SessionFactory sf = cfg.configure().buildSessionFactory(); //解析并建立Session工厂     1. Session session = sf.getCurrentSession(); // 获得Session

session的openSession()方法与getCurrentSession()方法的区别

session的openSession()方法和getCurrentSession()方法有很大区别,用的时候要分清。     在hibernate中,当要保存记录时,我们要用到session的save()方法,所以需要得到session,得到session 要用到openSession()方法或getCurrentSession()方法。 openSession()方法

getCurrentSession与openSession区别

getCurrentSession的话会自动关闭,而openSession需要你手动关闭。 如果你正在查询,使用的openSession而没有手动关闭,多次之后会导致连接池溢出,系统会挂掉的~

openSession 与 getCurrentSession, openStatelessSession区别

1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭 这里getCurrentSession本地事务(本地事务:jdbc)时 要在配置文件里进行如下设置     * 如果使用的是本地事务(jdbc事务)  <p

Hibernate中getHibernateTemplate()下的update、delete、save操作

近来学习到Hibernate中getHibernateTemplate()下的增删改的内容,在刚开始编写操作的时候,被一些问题纠结了自己许久,比如,我直接update一个新传来的对象,它却把库中所有对象全部覆盖了等等,最后在后续的学习中得到了总结,故在此写下记录,方便后人少走弯路,也方便自己日后查阅 1.如果你只想update或者delete一条记录的话,要将实体对象的id主键设置成那条记录

Hibernate中getCurrentSession和openSession的区别

1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭(调用session的close()方法) 这里getCurrentSession本地事务(本地事务:jdbc)时要在配置文件里进行如下设置 * 如果使用的是