我正在升級到運行postgres的現有系統。在春季交易系統中使用休眠會話工廠的地圖
以前的架構師認爲,在系統之外獲得更高性能的最佳方式是在每年之後將前幾年的數據移動到數據庫中的新模式,而不是簡單地索引主模式。 (嚴重的是,零指數,9個相同的模式)。
現在的問題。我刪除了他們正在使用的瘋狂數據庫連接邏輯(看起來他們試圖從頭構建一個事務管理器)並用Spring事務代替它。所以現在IM不得不面對這樣的循環:
for(archive a : yearsArchived){
session s = sessionfactorymap.get(a).getcurrentsession();
(find data and copy to temporary table for report)
}
我可以創建不同的模式很容易在各種會議上的工廠,問題是它們關聯到一個事務管理器,使他們能夠打開的會話。當我把一切都轉換我得到這個異常:
org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685)
at parity.model.ReportThread.generate(ReportThread.java:47)
at parity.model.ReportThread.run(ReportThread.java:31)
(是的,我知道,這是一個多線程的Web應用程序,以前的開發者延緩)
我通常彈簧事務類我不因爲我假設春季交易管理者完成了這個任務,所以需要設置一個當前情景上下文。我在世界上如何解決這個混亂?
您是否使用基於註解的方法?提供您定義sessionfactory的應用程序上下文部分。 – ManuPK