錯誤記錄(九)Could not obtain transaction-synchronized Session for current thread
報錯資訊:
org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread
at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:134)
at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1041)
這個錯誤的提示是無法獲取當前transaction-synchronized執行緒的會話
原因是沒有為用到了事務的方法定義事務
比如:在Action中定義了該方法,用於刪除資料資訊操作:
而在applicationContext.xml中是這樣設定的:
這表示只有以do和find打頭的方法才能事務,其他方法不走事務,刪除自然不能成功,於是報上面的錯誤。
當然,也可能不是上面這麼粗心的原因,如果使用了Hibernate4報錯的話,可以在web.xml中加入如下配置,程式也可以正常執行了。
<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>
網上還看到一種解決方法,針對第二種情況的,測試也可行。
1. 在spring 配置檔案中加入
2. 在處理業務邏輯的類上採用註解:<tx:annotation-driven transaction-manager="transactionManager"/>
如:
@Service
public class CustomerServiceImpl implements CustomerService {
@Transactional
public void saveCustomer(Customer customer) {
customerDaoImpl.saveCustomer(customer);
}
...
}
相關文章
- 異常資訊解決:Could not obtain transaction-synchronized Session for current threadAIsynchronizedSessionthread
- Could not obtain transaction-synchronized Session for current thread原因及解決方案AIsynchronizedSessionthread
- 錯誤記錄(八)could not initialize proxy - no SessionSession
- RMAN-06403: could not obtain a fully authorized sessionAIZedSession
- V$SESSION記錄的BLOCKING_SESSION錯誤SessionBloC
- 記一次ORA-27037: unable to obtain file status錯誤AI
- SpringMVC @Transactional的陷井大坑引發No Session found for current threadSpringMVCSessionthread
- Kafka錯誤記錄Kafka
- makes the current sessionSession
- 解決SpringMVC+Hibernate錯誤: No Hibernate Session bound to threadSpringMVCSessionthread
- 記錄錯誤並繼續執行:錯誤事件記錄子句 --轉事件
- C++錯誤記錄C++
- SpringMVC錯誤記錄SpringMVC
- Use SYS_CONTEXT to Obtain Session InformationContextAISessionORM
- 錯誤記錄:apache預設網頁訪問錯誤Apache網頁
- JS錯誤記錄 – dom操作 – 排序JS排序
- 假資料填充錯誤記錄
- virtualbox 錯誤解決記錄
- could not initialize proxy - no SessionSession
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- AUDIT IN SESSION CURRENT無法NOAUDITSession
- Go:錯誤 could not launch process: EOF 解決Go
- 錯誤 - Could not find the index entry for RIDIndex
- MongoDB的一次錯誤記錄MongoDB
- postgresal使用錯誤解決 (記錄篇)
- Qt 錯誤記錄registered using qRegisterMetaType().QT
- su - root could not open sessionSession
- async 與 Thread 的錯誤結合thread
- 實體類註解錯誤:Could not determine type for:
- Oracle RAC 錯誤記錄以及處理方法Oracle
- 【SESSION】v$session and v$license 中sessions_current 的區別Session
- No Hibernate Session bound to threadSessionthread
- 如何處理錯誤資訊 Pricing procedure could not be determined
- Mysql啟動錯誤-server PID file could not be foundMySqlServer
- 【轉】WARNING:Could not lower the asynch I/O limit 錯誤MIT
- hibernate.current_session_context_classSessionContext
- vagrant homestead 錯誤記錄以及解決方案
- Docker環境編譯時的錯誤記錄Docker編譯