J'ai un NHibernate Interceptor qui est défini dans le HibernateTemplate en utilisant Spring.Net (j'utilise ASP.NET MVC, fwiw), qui est utilisé pour l'audit. Cependant, pour une raison quelconque, pendant que la méthode OnLoad est déclenchée lorsque j'appelle genericDAO.Get (id), lorsque j'essaie d'enregistrer quelque chose en utilisant genericDAO.SaveOrUpdate (object), ni les méthodes OnSave ni OnFlushDirty Interceptor ne sont appelées. Quelqu'un sait pourquoi cela pourrait être? J'ai défini des points d'arrêt sur les méthodes dans le débogueur VS, donc je suis à peu près certain que l'Interceptor est défini et que je ne manque aucun appel de méthode. Évidemment, tout est sauvegardé et récupéré correctement aussi.NHibernate Interceptor non utilisé lors de l'enregistrement
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
}
}
Pourriez-vous montrer une partie de votre configuration? – BennyM
J'ai copié dans le fichier objects.xml ci-dessous. Y a-t-il autre chose que vous pensez que cela aiderait à voir? – LucyB