我剛剛遇到了一個我通過Spring調用的Quartz作業的問題。我的ExecuteInternal
方法有一個[Transaction]
屬性(因爲它負責DB調用),但是當它運行時,我得到'沒有NHibernate會話綁定到線程'的錯誤。Spring.NET,Quartz&Transactions
只是想知道,如果那是因爲Spring.NET不支持在石英對象[Transaction]
屬性?
如果不是,那很好......我可以手動啓動交易,但要檢查它的情況下,而不是在我的配置一個愚蠢的錯誤的地方。
[更新] 我明白其實。在API文檔中,它表示最好的方法是使用服務層上的事務。我的工作是使用DAO來完成它的工作,但是我的事務處在我的服務層上,所以我只是從我的工作中調用服務方法,而不是爲了做同樣的工作(保存,更新記錄等),因爲它們已經存在。
它也表明,如果你給SchedulerFactoryObject一個DbProvider,你可以在作業本身中使用事務,但是當我這樣做時,它似乎想要在DB中的特殊表中找到我的觸發器(我沒有因爲我的觸發器全部都是XML格式,所以這可能是另一種方法。
調用服務的方法對我來說工作正常不過。
你可以回答你自己的問題,接受你自己的答案。這樣大家都知道你問題解決了。 – Marijn
會做。我必須等待8個小時,顯然...... – Richard