## 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>
- 解决方法一
在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