查了一下相關資料,整理以下: java
緣由:Hibernate4 No Session found for current thread緣由 web
解決方法: spring
1. 在spring 配置文件中加入 session
程序代碼
<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 app
我也出現了這個問題,可是我在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>