Hi Alex,

But in a stateless session there is no lazy loading, and no cache.
That is is the whole point of a stateless session.

(see docs: 
http://docs.jboss.org/hibernate/orm/3.3/api/org/hibernate/StatelessSession.html
and question about lazy loading 
http://www.mail-archive.com/[email protected]/msg12715.html)

I have tracked this down to what looks like a very weird bug. If you
mark one of the properties of an entity with lazy="no-proxy", then the
entity itself is returned as a proxy when you call
IStatelessSession.Get<T>();

regards,
Jordan.


On Apr 30, 5:51 pm, Alex Vilela <[email protected]> wrote:
> Hi Jordan,
>
> AKAIK the proxy is related to whether you want to lazy load your entity
> properties and not whether you want to use the first/second level cache (a
> stateless session).
>
> Alex Vilela
>
> On 30 April 2012 16:47, Jordan <[email protected]> wrote:
>
>
>
>
>
>
>
> > Ok - upon further investigation there is some weird behaviour here.
>
> > I have changed my code to retrieve 2 entities of different types with
> > IStatelessSession.Get<T>().
>
> > For one of them it correctly returns a non-proxy instance of T (and
> > updates therefore work), but for the other it always gives me a proxy.
>
> > I would have thought it should never return a proxy?
>
> > regards,
> > Jordan.
>
> > On Apr 30, 3:22 pm, Jordan <[email protected]> wrote:
> > > Hi all,
>
> > > I've got a problem doing updates with a stateless session and I'm
> > > wondering if anyone has seen something like this. (NHibernate 3.1).
>
> > > I'm basically doing the following:
>
> > > SomeEntity e = statelessSession.Get<SomeEntity>(id);
> > > e.SomeProperty = "a new value";
> > > statelessSession.Update(e);
>
> > > and I am getting the following error:
>
> > > NHibernate.MappingException: No persister for:
> > > Castle.Proxies.SomeEntityProxy
> > >    at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String
> > > entityName)
> > >    at NHibernate.Impl.StatelessSessionImpl.GetEntityPersister(String
> > > entityName, Object obj)
> > >    at NHibernate.Impl.StatelessSessionImpl.Update(String entityName,
> > > Object entity)
> > >    at NHibernate.Impl.StatelessSessionImpl.Update(Object entity)
>
> > > I have stepped through in the debugger and can see that
> > > statelessSession.Get<SomeEntity>(id) is returning me a proxy. Is this
> > > correct?
>
> > > regards,
> > > Jordan.
>
> > --
> > 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.

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