Have you ever been able to measure how much faster using FlushMode.NEVER is
over letting Hibernate check it?

Eric

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Behalf Of
> Jason Carreira
> Sent: Saturday, November 15, 2003 3:59 AM
> To: [EMAIL PROTECTED]
> Subject: RE: [OS-webwork] Hibernate Session as Request Scoped 
> Component
> 
> 
> Public flogging? You'll get errors that you have to track down... 
> 
> > -----Original Message-----
> > From: Matthew E. Porter [mailto:[EMAIL PROTECTED] 
> > Sent: Friday, November 14, 2003 9:53 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [OS-webwork] Hibernate Session as Request Scoped 
> > Component
> > 
> > 
> > Jason:
> >    What happens if some *accidentally* calls getReadOnly() 
> > and performs  
> > a write?
> > 
> > 
> > Cheers,
> >    matthew
> > 
> > On Nov 14, 2003, at 8:01 PM, Jason Carreira wrote:
> > 
> > > Ok... Looking back at what we did here (and bugging Gavin)...
> > >
> > > We always set mySession.setFlushMode(FlushMode.NEVER);
> > >
> > > And have a flag that is set in the getReadWrite() that 
> tells it to 
> > > manually flush() on dispose, otherwise it doesn't flush at 
> > all, which 
> > > saves it from having to check the objects.
> > >
> > > Jason
> > >
> > >> -----Original Message-----
> > >> From: [EMAIL PROTECTED]
> > >> [mailto:[EMAIL PROTECTED] 
> > On Behalf 
> > >> Of Eric Pugh
> > >> Sent: Friday, November 14, 2003 5:51 PM
> > >> To: [EMAIL PROTECTED]
> > >> Subject: RE: [OS-webwork] Hibernate Session as Request Scoped 
> > >> Component
> > >>
> > >>
> > >> Hibernate is smart enough to know when to do the flush.. 
> > Yes, it has 
> > >> to check internally that nothing changed, but you would be 
> > doing that 
> > >> anyway.  So, when you call the flush command, Hibernate 
> > then figures 
> > >> out what needs to be saved, and if nothing needs to be 
> > saved, then it 
> > >> won't...
> > >>
> > >> Eric
> > >>
> > >>> -----Original Message-----
> > >>> From: [EMAIL PROTECTED]
> > >>> [mailto:[EMAIL PROTECTED]
> > >> Behalf Of
> > >>> Jason Carreira
> > >>> Sent: Friday, November 14, 2003 8:50 PM
> > >>> To: [EMAIL PROTECTED]
> > >>> Subject: RE: [OS-webwork] Hibernate Session as Request Scoped 
> > >>> Component
> > >>>
> > >>>
> > >>> I think this is a good solution, except I think you forgot
> > >> to save the
> > >>> Session if it's null. I would optimize it by having two methods:
> > >>>
> > >>> getReadOnlySession
> > >>> getReadWriteSession
> > >>>
> > >>> Which both return the same Session, but 
> > getReadWriteSession sets a 
> > >>> flag to do the flush()... If the flag is not set, you 
> can skip the
> > >>> flush and
> > >>> roll back the transaction.
> > >>>
> > >>> Jason
> > >>>
> > >>>> -----Original Message-----
> > >>>> From: Matthew E. Porter [mailto:[EMAIL PROTECTED]
> > >>>> Sent: Friday, November 14, 2003 12:16 PM
> > >>>> To: [EMAIL PROTECTED]
> > >>>> Subject: [OS-webwork] Hibernate Session as Request Scoped
> > >> Component
> > >>>>
> > >>>>
> > >>>> Instead of using a ThreadLocal Hibernate Session, has
> > >> anyone played
> > >>>> with having a HibernateSessionProvider component at 
> the request 
> > >>>> scope? Here is how I would envision the code:
> > >>>>
> > >>>> public class HibernateSessionProvider implements 
> > SessionProvider, 
> > >>>> Disposable {
> > >>>>      private SessionFactoryProvider sessionFactoryProvider;
> > >>>>      private Session session;
> > >>>>
> > >>>>      public SessionFactoryProvider 
> getSessionFactoryProvider() {
> > >>>>          return this.sessionFactoryProvider;
> > >>>>      }
> > >>>>
> > >>>>      public void 
> setSessionFactoryProvider(SessionFactoryProvider
> > >>>> sessionFactoryProvider) {
> > >>>>          this.sessionFactoryProvider = sessionFactoryProvider;
> > >>>>      }
> > >>>>
> > >>>>      public Session getSession() throws PersistenceException {
> > >>>>          if ((this.session == null) || 
> > (!this.session.isOpen())) {
> > >>>>              try {
> > >>>>                  return 
> > >>>> this.sessionFactoryProvider.getSessionFactory().openSession();
> > >>>>              } catch (HibernateException he) {
> > >>>>                  throw new
> > >> PersistenceException("HibernateException
> > >>>> caught building hibernate hibernate", he);
> > >>>>              }
> > >>>>          }
> > >>>>
> > >>>>          return this.session;
> > >>>>      }
> > >>>>
> > >>>>      public void dispose() {
> > >>>>          if ((this.session != null) && 
> (this.session.isOpen()) &&
> > >>>> (this.session.isConnected()) {
> > >>>>              try {
> > >>>>              this.session.flush();
> > >>>>              this.session.connection().commit();
> > >>>>              this.session.close();
> > >>>>              } catch (Exception e) {
> > >>>>                  // do something
> > >>>>              }
> > >>>>          }
> > >>>>
> > >>>>      }
> > >>>> }
> > >>>>
> > >>>>
> > >>>> Is there anything wrong with doing it this way?  All of the 
> > >>>> components needing a Hibernate session (Persistence 
> Manager and 
> > >>>> DAOs)
> > >>> are scoped
> > >>>> at the same level.  SessionFactoryProvider is another
> > >> component but
> > >>>> scoped at the application.
> > >>>>
> > >>>>
> > >>>> Cheers,
> > >>>>    matthew
> > >>>>
> > >>>>
> > >>>>
> > >>>> -------------------------------------------------------
> > >>>> This SF. Net email is sponsored by: GoToMyPC
> > >>>> GoToMyPC is the fast, easy and secure way to access your 
> > computer 
> > >>>> from any Web browser or wireless device. Click here to 
> > Try it Free!
> > >>>> https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/
> > >>> g22lp.tmpl
> > >>> _______________________________________________
> > >>> Opensymphony-webwork mailing list 
> > >>> [EMAIL PROTECTED]
> > >>> 
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >>>
> >>>
> >>> -------------------------------------------------------
> >>> This SF. Net email is sponsored by: GoToMyPC
> >>> GoToMyPC is the fast, easy and secure way to access your
> >> computer from
> >>> any Web browser or wireless device. Click here to Try it Free! 
> >>> https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/
> >> g22lp.tmpl
> >> _______________________________________________
> >> Opensymphony-webwork mailing list 
> >> [EMAIL PROTECTED]
> >> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> >>
> >
> >
> > -------------------------------------------------------
> > This SF. Net email is sponsored by: GoToMyPC
> > GoToMyPC is the fast, easy and secure way to access your 
> computer from 
> > any Web browser or wireless device. Click here to Try it Free! 
> > https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/
> > g22lp.tmpl
> > _______________________________________________
> > Opensymphony-webwork mailing list 
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork
> 
> 
> 
> -------------------------------------------------------
> This SF. Net email is sponsored by: GoToMyPC
> GoToMyPC is the fast, easy and secure way to access your 
> computer from any Web browser or wireless device. Click here 
> to Try it Free! 
> https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/
g22lp.tmpl
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork


-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

<<attachment: winmail.dat>>

Reply via email to