Load() -- open connection
 -- execute sql
 -- close connection

Save()
  -- open connection
  -- execute sql
  -- close connection

On Fri, Nov 7, 2008 at 4:03 PM, FrederikGheysels <
[EMAIL PROTECTED]> wrote:

>
> How will it do that then, if I may ask ?
> I mean, suppose I open a session, load an object from the DB and do
> not disconnect the session.
> Then, the object is loaded, the user leaves for lunch for instance,
> He comes back, does some other changes, and wants to persist his work.
> When will NHibernate disconnect the session ?
>
> Does the 'connection.release-mode' configuration value also affects
> this behaviour ?
>
> On Nov 7, 2:23 pm, "Ayende Rahien" <[EMAIL PROTECTED]> wrote:
> > Don't disconnect the session NH will take care of closing/opening the
> > connection to optimize it to minimal usage time.
> >
> > On Fri, Nov 7, 2008 at 3:18 PM, FrederikGheysels <
> >
> > [EMAIL PROTECTED]> wrote:
> >
> > > I am using NHibernate in a WinForms application.
> > > In this application, I make use of 'long sessions'; consider that I
> > > have an ISession that is kept around as long as my Form is open.
> >
> > > That is:
> > > I load an object using this Session when the form is opened.
> > > When the form is being closed, I check if I have to save the object,
> > > and if so, I save it using the same session.
> >
> > > During 'user think time', I disconnect the Session, so that the DB
> > > connection is not kept open for a long period of time.
> >
> > > The issue that I now have, is that my object contains a collection
> > > which is lazy loaded.
> > > Since I disconnect my session once the object has been loaded, I get
> > > an exception offcourse when I want to access the collection of that
> > > object.  (I do not always need this collection).
> >
> > > Therefore, when I need to access the collection, I explicitly
> > > reconnect the Session, and disconnect it afterwards.  Offcourse, this
> > > is not very 'transparant' IMHO.
> > > It would be nice if there would be some way to reconnect the session
> > > implicitly; the client should not even know that the collection that I
> > > want to retrieve, is a lazyloaded collection.
> >
> > > I've tried creating an Intercepter, in where I've overriden the
> > > SetSession, Load and Instantiate methods.  In this way, I thought that
> > > I could reconnect the session each time the Load or Instantiate
> > > methods were invoked, and when I saw that the session was
> > > disconnected, I could reconnect the session.
> > > But, this doesn't work.
> >
> > > Another option, would be that I keep my Session connected during 'user
> > > think time', but IMHO , this is not a viable option; one never knows
> > > how long the Form (and therefore the session) will be kept open, and
> > > connected to the DB.
> >
> > > Is there any other way on how I could make this a bit more
> > > transparant ?
> > > Maybe it is an idea to add a method to the Interceptor which is
> > > invoked each time something is being lazy loaded (just before it is
> > > lazy loaded) ?
> >
>

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