getHibernateTemplate().getSessionFactory().getCurrentSession()

在Spring中遇到使用getHibernateTemplate().getSessionFactory().getCurrentSession()获取Session执行HSQL时,出现'NoHibernateSessionboundtothread,andconfigurationdoesnotallow'错误。问题源于事务配置未生效。已提供的事务配置显示get*方法被标记为只读,隔离级别为可重复读,但事务并未正常启动。关闭Session会导致 HibenateException: Session已关闭。解决方案可能涉及正确配置事务管理以确保Session与事务同步。

问题描述:使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值