Это , а не код NHibernate (это код Hibernate Java), но поиск в Google NHibernate API делает его похожим, что вы могли бы начать работу и для NHibernate (есть класс PersistentMap
, которыйимеет свойство Owner
и свойство CollectionSnapshot
):
public void onCollectionUpdate(Object collection, Serializable id) {
System.out.println("****onCollectionUpdate");
if(collection instanceof PersistentMap) {
PersistentMap newValues = (PersistentMap) collection;
Object owner = newValues != null ? newValues.getOwner() : null;
Set<?> oldValues = newValues != null
? ((Map<?, ?>) newValues.getStoredSnapshot()).keySet()
: null;
System.out.println("owner: " + (owner != null ? owner.toString() : "(null)"));
System.out.println("oldValues: " + (oldValues != null ? oldValues.toString() : "(null)"));
System.out.println("newValues: " + (newValues != null ? newValues.toString() : "(null)"));
} else if (collection instanceof PersistentSet) {
PersistentSet newValues = (PersistentSet) collection;
Object owner = newValues != null ? newValues.getOwner() : null;
Set<?> oldValues = newValues != null
? ((Map<?, ?>) newValues.getStoredSnapshot()).keySet()
: null;
System.out.println("owner: " + (owner != null ? owner.toString() : "(null)"));
System.out.println("oldValues: " + (oldValues != null ? oldValues.toString() : "(null)"));
System.out.println("newValues: " + (newValues != null ? newValues.toString() : "(null)"));
}
}
Обратите внимание, что я знаю, что это не код C # или NHibernate.Пожалуйста, прокомментируйте, если это абсолютно бесполезно для NHibernate (если API совсем не похож, хотя мой поисковый запрос говорит, что он похож), и я удалю пост.
Я погружен в землю Javaпрямо сейчас, или я бы попробовал это для вас:)