Touche Fabio :) I will make a deal with you ... I will write an in depth documentation patch about the NH event model if you can please explain why there is wiki article explaining how to create an audit log which clearly uses the OnPre events to CHANGE ENTITY state - http://nhforge.org/wikis/howtonh/creating-an-audit-log-using-nhibernate-events.aspx
On Apr 8, 7:33 pm, Fabio Maulo <[email protected]> wrote: > "is not really documented anywhere" > That is only because we are still waiting your patch for the NHibernate > public documentation. > If you don't want to send a patch you can use the nhforge wiki, the knol > (http://knol.google.com), share your experience in your blog, share your > experience in thewww.nhforge.orgblog > > We wrote tons of code, somebody else can write a little bit of text. > > On Fri, Apr 8, 2011 at 12:58 PM, Scott Findlater > <[email protected]>wrote: > > > > > Hi Fabio, OK, obviously you are right :) I will stop trying to change > > entity state in these events. It is just NOT TO CHANGE state in these > > events is not really documented anywhere and from blog posts give > > examples of using the OnPreInsert and OnPreUpdate event listeners as > > the perfect place for mechanisms such as Audit trails which do change > > entity state. To conclude, I will obviously follow your guidance. I > > really appreciate your patience. Kind regards, Scott. > > > On Apr 8, 3:52 pm, Fabio Maulo <[email protected]> wrote: > > > Scott, > > > PreUpdate, PreInsert, PreDelete are to check entity state (as most even > > to > > > log) but NOT TO CHANGE entity state. > > > Again, try to follow what I said. > > > > To Log the old state or the difference you can use even the PostXYZ. > > > > On Fri, Apr 8, 2011 at 9:54 AM, Scott Findlater < > > [email protected]>wrote: > > > > > Fabio, thank you so much for your reply. > > > > > Sorry I do not think I am explaining myself very well, may I please > > > > ask you to download this sln (http://dl.dropbox.com/u/20651208/ > > > > WTF.zip) and I can demonstrate with just 3 tests in the > > > > BecauseOfEventHandling class; > > > > > 1. Test a_onPre_event_listeners_fired_and_entities_modified() shows > > > > the OnPreUpdate event is processing as expected. > > > > 2. Test > > > b_onPreUpdate_event_listener_fired_but_no_persistance_on_auditable_entity() > > > > shows where I have my issue. > > > > 3. Test > > > c_onPreUpdate_event_listener_fired_with_persistance_on_auditable_entity() > > > > shows a work around which highlights an issue?? > > > > > I hope this makes everything clearer and that I am not trying to do > > > > any NH internal stuff, only using the OnPreUpdate event listeners. > > > > Thank you so much for your patience. > > > > > On Apr 8, 6:59 am, Fabio Maulo <[email protected]> wrote: > > > > > Scott, > > > > > to change properties try to follow what I said and you will see that > > it > > > > is > > > > > even more easy (you have to deal only with your object and not with > > NH > > > > > internals). > > > > > > On Wed, Apr 6, 2011 at 4:42 AM, Scott Findlater < > > > > [email protected]>wrote: > > > > > > > Hi Suman, > > > > > > > I would be interested to know if you are updating any other > > properties > > > > > > in your subclass, that after removing dynamic-update=true, all > > works. > > > > > > This is because if I update a property on the subclass then any > > > > > > processing in the PreUpdate event is persisted, but if the subclass > > is > > > > > > only modified in the PreUpdate event then nothing is persisted. > > > > > > > On Apr 6, 7:58 am, Suman <[email protected]> wrote: > > > > > > > Hi Scott, > > > > > > > > I have similar issue and I was about to ask the same question > > here. > > > > > > > > Further to your situation, I am not sure whether it's a bug or > > > > > > > feature, In my mapping, when I have dynamic-update = "true" in > > > > > > > subclass the audit columns in base class, the generated sql > > doesn't > > > > > > > include audited column (ModifiedBy & ModifiedDate which are > > > > properties > > > > > > > of base class) but if I remove dynamic-update = "true" it works. > > So > > > > > > > essentially it points me to some reflection + dynamic-update > > issue. > > > > > > > Just wondering if that's what's happening in your side as well. > > > > > > > > Suman > > > > > > > > On Apr 5, 6:27 pm, Scott Findlater <[email protected]> > > wrote: > > > > > > > > > Please may I ask for clarification on the semantics/ usage of > > > > > > > > PreUpdate vs OnSaveOrUpdate listeners based on NH-2596 (http:// > > > > > > > > 216.121.112.228/browse/NH-2596). > > > > > > > > > After reading Ayende's blog posts on NHibernate > > > > > > > > IPreUpdateEventListener & IPreInsertEventListener ( > > > >http://ayende.com/ > > > > > > > > Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp- > > > > > > > > ipreinserteventlistener.aspx) with an audit trail example I > > adopted > > > > > > > > this method myself. During my learning I raised NH-2617 > > (http:// > > > > > > > > 216.121.112.228/browse/NH-2617) issue, where I found PreUpdate > > > > event > > > > > > > > data changes on an entity which is only modified in the > > PreUpdate > > > > > > > > event is not persisted. > > > > > > > > > My issue was closed as a duplicate of NH-2596. However, > > NH-2596 is > > > > > > > > also closed as “not an issue” with the solution to use the > > > > > > > > OnSaveOrUpdate event listeners on the basis that pre-insert and > > > > pre- > > > > > > > > update listeners are not intended to be used to change the > > values > > > > of > > > > > > > > the entity. Instead they should be used to check-values (for > > that > > > > > > > > reason they return "veto"). > > > > > > > > > I am alittle confused as to the best practice usages/ semantics > > of > > > > > > > > PreUpdate vs OnSaveOrUpdate now. Would someone be able to > > clarify > > > > why > > > > > > > > the use of PreInsert and PreUpdate is used by many for Audit > > > > trailing > > > > > > > > but incorrectly? Or why is the OnSaveOrUpdate listener > > suggested > > > > in > > > > > > > > the closure of NH-2596 and this non peristance is not an issue. > > > > > > > > > Many thanks, Scott. > > > > > > > -- > > > > > > You received this message because you are subscribed to the Google > > > > Groups > > > > > > "nhusers" group. > > > > > > To post to this group, send email to [email protected]. > > > > > > To unsubscribe from this group, send email to > > > > > > [email protected]. > > > > > > For more options, visit this group at > > > > > >http://groups.google.com/group/nhusers?hl=en. > > > > > > -- > > > > > Fabio Maulo > > > > > -- > > > > You received this message because you are subscribed to the Google > > Groups > > > > "nhusers" group. > > > > To post to this group, send email to [email protected]. > > > > To unsubscribe from this group, send email to > > > > [email protected]. > > > > For more options, visit this group at > > > >http://groups.google.com/group/nhusers?hl=en. > > > > -- > > > Fabio Maulo > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group at > >http://groups.google.com/group/nhusers?hl=en. > > -- > Fabio Maulo -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
