您的位置:首页 > 编程语言 > Java开发

SpringMVC4+Hibernate4运行报错Could not obtain transaction-synchronized Session for current thread

2015-09-14 15:21 513 查看
转自:/article/1571544.html

结合自己的配置问题,第二种解决了我的问题。

查了一下相关资料,整理如下:

原因:Hibernate4 No Session found for current thread原因

解决方法:

1. 在spring 配置文件中加入


程序代码

<tx:annotation-driven transaction-manager="transactionManager"/>

并且在处理业务逻辑的类上采用注解


程序代码

@Service

public class CustomerServiceImpl implements CustomerService {

@Transactional

public void saveCustomer(Customer customer) {

customerDaoImpl.saveCustomer(customer);

}

...

}

另外在 hibernate 的配置文件中,也可以增加这样的配置来避免这个错误:


程序代码

<property name="current_session_context_class">thread</property>

解决方法二:http://zhidao.baidu.com/link?url=BNyi8By29DMOXBCiNLeTa7WTTxlf4Q4IbQkrYO6lv6MFNMxv5zkBIx723t4JkezOaNcxc9ARhDIeXxtRZbID_0jYKonThVemDs1VkBUFmpK

我也出现了这个问题,但是我在web.xml中增加了filter就可以了。也许你的问题不是这个,但我的这个问题是这么解决的。
<filter>
<filter-name>SpringOpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SpringOpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


以上亲测,都可以解决!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: