監査に使用されるSpring.Net(ASP.NET MVC、fwiwを使用)を使用してHibernateTemplateに設定されているNHibernateインターセプターがあります。ただし、何らかの理由で、genericDAO.Get(id)を呼び出したときにOnLoadメソッドがトリガーされているときに、genericDAO.SaveOrUpdate(object)を使用して何かを保存しようとすると、OnSaveメソッドもOnFlushDirtyインターセプターメソッドも呼び出されません。なぜこれが起こるのか誰もが知っていますか?
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
}
}