我刚刚遇到了一个我通过Spring调用的Quartz作业的问题。我的ExecuteInternal
方法有一个[Transaction]
属性(因为它负责DB调用),但是当它运行时,我得到'没有NHibernate会话绑定到线程'的错误。Spring.NET,Quartz&Transactions
只是想知道,如果那是因为Spring.NET不支持在石英对象[Transaction]
属性?
如果不是,那很好......我可以手动启动交易,但要检查它的情况下,而不是在我的配置一个愚蠢的错误的地方。
[更新] 我明白其实。在API文档中,它表示最好的方法是使用服务层上的事务。我的工作是使用DAO来完成它的工作,但是我的事务处在我的服务层上,所以我只是从我的工作中调用服务方法,而不是为了做同样的工作(保存,更新记录等),因为它们已经存在。
它也表明,如果你给SchedulerFactoryObject一个DbProvider,你可以在作业本身中使用事务,但是当我这样做时,它似乎想要在DB中的特殊表中找到我的触发器(我没有因为我的触发器全部都是XML格式,所以这可能是另一种方法。
调用服务的方法对我来说工作正常不过。
你可以回答你自己的问题,接受你自己的答案。这样大家都知道你问题解决了。 – Marijn
会做。我必须等待8个小时,显然...... – Richard