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

spring&&hibernate异常整理

2016-08-25 11:35 232 查看
## org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread

- 解决方法一

在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>
```

或者

```
<prop key="current_session_context_class">thread</prop>
```

- 解决方法二

在web.xml中增加了filter就可以了

```
    <!-- openSessionInView配置 -->
    <filter>
        <filter-name>openSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
        <init-param>
            <param-name>singleSession</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>openSessionInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
```

资料参考:http://blog.csdn.net/caiwenfeng_for_23/article/details/45242545
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐