我有一個NHibernate攔截器,使用Spring.Net(我使用ASP.NET MVC,fwiw)在HibernateTemplate中設置,用於審計。但是,出於某種原因,當我調用genericDAO.Get(id)時觸發OnLoad方法時,當我嘗試使用genericDAO.SaveOrUpdate(object)保存某些內容時,不會調用OnSave或OnFlushDirty Interceptor方法。任何人都知道這可能是爲什麼?保存時不使用NHibernate攔截器
我已經在VS調試器中的方法上設置了斷點,所以我非常確定攔截器已設置,並且我不缺少任何方法調用。顯然,一切都被保存並正確檢索。
public class AuditInterceptor
: EmptyInterceptor
{
public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)
{
// Implementation
// Called when using genericDAO.Get(id)
}
public override bool OnSave(Object entity, Object id, Object[] state,
String[] propertyNames, IType[] types)
{
// Implementation
// NOT called when using genericDAO.SaveOrUpdate(entity)
}
public override bool OnFlushDirty(Object entity, Object id,
Object[] currentState, Object[] previousState,
String[] propertyNames, IType[] types)
{
// Implementation
}
}
你能展示一些你的配置嗎? – BennyM 2010-01-24 11:44:09
我已經複製到下面的objects.xml文件中。還有什麼你認爲有助於看到的? – LucyB 2010-01-28 10:58:19