I've tried changing the default-access strategy in the mapping files
to use properties instead of accessing the fields but still no luck -
getting the same StaleObjectStateException.

Anyone else had similar problems? Or maybe merge is just not the right
way of trying to resolve a StaleObjectStateException, if someone can
confirm that would be great.

Thanks in advance
Christian

On Mar 9, 11:52 pm, christianacca <[email protected]>
wrote:
> The irony here is that I'm using Merge to try and recover from a
> StaleObjectStateException!
>
> I'm using of r4098 from the NHibernate trunk.
>
> Here's the test case:
>
> [Test]
> public void Should_be_able_to_merge_stale_object()
> {
>     var obj = new Location { Address = new Address("1", "1", "1",
> "1") };
>     var id = Nh.InsertIntoDb(obj); //flushes and clears session
>
>     var session = Nh.CreateSession();
>     var staleObject = session.Get<Location>(id);
>     staleObject.Name = "Fabio";
>
>     session.Evict(staleObject);
>
>     using (var session2 = Nh.CreateSession()) {
>         var updatedObj = session2.Get<Location>(id);
>         updatedObj.Name = "Fabio Maula";
>         session2.Flush();
>     }
>
>     using (var session3 = Nh.CreateSession()) {
>         session3.Merge(staleObject);
>         session3.Flush(); //this throws an exception
>     }
>
> }
>
> Here's the mapping file:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>                                         auto-import="false"
>                                         
> default-access="field.camelcase-underscore"
>                                     
> namespace="Eca.NHibernateRepositoryEg.DomainModel"
>                                     
> assembly="Eca.NHibernateRepositoryEg.DomainModel">
>         <class name="Location">
>                 <id name="Id" column="LocationId">
>                         <generator class="assigned"/>
>                 </id>
>                 <version name="ConcurrencyId" unsaved-value="-1"/>
>
>                 <property name="Name"/>
>                 <property name="Url"/>
>
>                 <component name="Address" >
>                         <property name="Line1" not-null="true"/>
>                         <property name="Town" not-null="true"/>
>                         <property name="County" not-null="true"/>
>                         <property name="PostCode" not-null="true"/>
>                 </component>
>         </class>
> </hibernate-mapping>
>
> Am I right to assume that merge should handle this situation? If what
> do you think the problem is?
>
> Thanks
> Christian
--~--~---------~--~----~------------~-------~--~----~
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