Considering your problem description i think you are using
FlushMode.Auto, why not consider using FlushMode.Commit. As this will
no longer lead to an update when you perform a query before the
commit.

On 13 jan, 16:50, Ayende Rahien <[email protected]> wrote:
> And re-load the objects, they are not in consistent state.
>
>
>
> On Tue, Jan 13, 2009 at 10:50 AM, Ayende Rahien <[email protected]> wrote:
> > You cannot recover from transaction rollback.You have to create a new
> > session.
>
> > On Mon, Jan 12, 2009 at 8:00 PM, kzjkd6 <[email protected]> wrote:
>
> >> We are trying to use nHibernate in a winform application.  We are
> >> using it in a session-per-business-activity model with entities that
> >> are disconnected and then associated to sessions using SaveOrUpdate
> >> ().
>
> >> We have the following scenario:
>
> >> App loads entity in Session 1.
> >> Session 1 is closed.
> >> App make changes to entity in response to user interaction
> >> Session 2 is started
> >> Transaction is started
> >> Entity is associated with session
> >> Query is made (which triggers a Flush and as a result the version
> >> number is incremented on the dirty entity)
> >> As a result of the business rules evaluated on the query results we
> >> decide not to commit the transaction.
> >> Transaction is rolled back.
> >> Session 2 is closed.
>
> >> User is shown a message explaining the problem.
> >> User fixed the problem (screen still bound to the same entity)
>
> >> Session 3 is started
> >> Transaction is started
> >> Entity associated with Session
> >> Query is made again (which triggers another Flush and the version
> >> number is incremented yet again)
> >> Business Rule now satisfied
> >> Transaction is committed.
> >> --> Exception thrown because the version number no longer satisfies
> >> the optimistic lock.
>
> >> I know we could throw away the user's changes and re-fetch the entity
> >> when the business rule is initially violated but that represents a
> >> huge pain for the users.  I know we could do this and then re-apply
> >> changes on the user's behalf but I am looking for a generic solution
> >> as the object graph can be quite deep.
>
> >> What is the recommend way to get around this?
>
> >> Thanks.- Tekst uit oorspronkelijk bericht niet weergeven -
>
> - Tekst uit oorspronkelijk bericht weergeven -

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