Я использовал IPreUpdateEventListener для аудита сущностей, в частности, с помощью метода FindDirty для поиска измененных свойств:
public bool OnPreUpdate(PreUpdateEvent updateEvent)
{
int[] dirtyFieldIndices = updateEvent.Persister.FindDirty(updateEvent.State, updateEvent.OldState, updateEvent.Entity, updateEvent.Session);
// Get changed property names and audit...
}
Это прекрасно работает для простых свойств. Однако у моей сущности есть свойство коллекции других сущностей. Одна из этих сущностей изменилась, и это изменение сохраняется, но FindDirty не дает мне индекс этого свойства коллекции. Есть ли способ завладеть измененным свойством для проверки этого изменения?