I keep getting an NHibernate.PersistentObjectException when calling session.Save() which is due to an uninitialized proxy passed to save(). If I fiddle with my cascade settings I can make it go away, but then child objects aren't being saved.
The only other fix I have found is by adding the following to my DefaultSaveEventListener.
protected override bool ReassociateIfUninitializedProxy(object obj, global::NHibernate.Engine.ISessionImplementor source)
{
if (!NHibernateUtil.IsInitialized(obj))
NHibernateUtil.Initialize(obj);
return base.ReassociateIfUninitializedProxy(obj, source);
}
This is obviously not an ideal solution.
Any ideas?
There mere presence of a custom DefaultSaveEventListener
subclass containing no overidden or extended behaviour is enough to trigger this exception for me, using the following configuration Xml:
<event type="save-update">
<listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" />
</event>
I am continuing this discussion in this question.
Update:
I had mistakenly derived from DefaultSaveEventListener
instead of DefaultSaveOrUpdateEventListener
, changing the superclass made this problem go away for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With