Could not obtain transaction-synchronized Session

查了一下相關資料,整理以下: 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>
相關文章
相關標籤/搜索