Any guidance on this?

On Mar 19, 1:00 pm, bbehrens <[email protected]> wrote:
> We had an issue with our application the other day in one particular
> use case.  The symptom was Created wasn't being persisted.  All of our
> DomainEntities have a Created property and we don't ever set it in our
> application.  Instead, we use the IPreUpdateEventListener and
> IPreInsertEventListener to handle both Created and LastModified.
> (We're using basically the same thing as 
> Ayendehttp://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventl....
>
> After some investigation, I noticed something interesting.  When the
> record is inserted, Created is most certainly being set.
>
> if (entity.Created == null)
> {
>     entity.Created = currentDate;
>     Set(persister, state, CreatedName, currentDate);
>
> }
>
> However, within the same transaction in this particular use case,
> NHibernate immediately turned around and did an update on the newly
> created object.  When this happened, the entity we got had the Created
> property set.  However, the value for Created in the state object
> array we got was null.  (As it was initially on the insert)
>
> Changing the code in our listener to the following:
>
> if (entity.Created == null)
> {
>     entity.Created = currentDate;
>     Set(persister, state, CreatedName, currentDate);}
>
> else
> {
>     Set(persister, state, CreatedName, entity.Created);
>
> }
>
> fixed the issue.
>
> I will be happy to provide more details about what's going on
> (modifying one of the collections on the entity seems to be causing
> the update to happen in this use case) but I thought this might be an
> issue on the NHibernate side.  Has anyone else seen this issue before
> using the insert / update listeners?
>
> Thanks in advance.

-- 
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.

Reply via email to