IHibernateDao uses a callback, IHibernateCallback. You can do anything
you like before you give out the session, and anything you like after
the callback has been executed.

On 8/13/05, Gili <[EMAIL PROTECTED]> wrote:
> 
>         I solved this with the following implementation inside my Page:
> 
>    private Session session;
> 
>    public void onBeginRequest()
>    {
>      HibernateHelper hibernate = HibernateHelper.getInstance();
>      SessionFactory sessionFactory = hibernate.getSessionFactory();
>      session = hibernate.openSession(sessionFactory);
>    }
> 
>    public void onEndRequest()
>    {
>      HibernateHelper hibernate = HibernateHelper.getInstance();
>      hibernate.closeSession(session);
>    }
> 
>    private final IHibernateDao sessionProvider = new HibernateDaoSupport()
>    {
>      @Override
>        public Session getSession()
>      {
>        return session;
>      }
>    };
> 
>         but... is this a hack? or is this the way I'm *supposed* to do this?
> 
> Thanks,
> Gili
> 
> Gili wrote:
> >
> >     Why doesn't IHibernateDao contains a method used to close a Session?
> > It's all nice and well to be able to open a session but unless there is
> > a hook for closing a session we're going to be leaking resources. The
> > code seems to assume that closing a session is as simple as invoking
> > Session.close() but this is not necessarily true. In my code, for
> > example, I associate an Interceptor with a Session and store the
> > association in a Map. When certain exceptions are thrown, such as
> > StaleObjectStateException, I retrieve the Interceptor associated with
> > the session and use information stored within to roll back some changes
> > that Hibernate does not do itself.
> >
> > My point is this: unless IHibernateDao has a method like:
> >
> >     closeSession(Session)
> >
> > then my code will leak resources. I could always use WeakReferences to
> > work around this but the problem remains: we should provide a hook for
> > closing a session. Also there seems to be a lack of correlation betwen
> > the request cycle and IHibernateDao. IHibernateDao should make some sort
> > of guarantees ... like, does it guarantee that the session returned by
> > getSession() will only be used within a single request and then
> > getSession() will be invoked in the next request? Without these sorts of
> > guarantees it becomes difficult to control the session life-cycle...
> >
> >     Ideas?
> >
> > Gili
> 
> --
> http://www.desktopbeautifier.com/
> 
> 
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> Wicket-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to