Use: @Inject Session session; //current session bound to the current thread
or @Inject HibernateSessionSource source; + source.create() for a really new session (CommitAfter would not work with newly created one); Using the Manager does give you only the session associated with the current thread as would @Inject Session session; would do. 2013/10/25 George Christman <gchrist...@cardaddy.com> > So I guess I'm still a little confused as to what is the best to do it. > @CommitAfter seems to work fine for individual transactions but does not > work well with batch jobs do to it holding on to the object in memory. > Anyhow, I could not figure out how to get Martins session.getTransaction() > to work, however I did end up getting the following code to work. Could > someone tell me if I'm doing this correctly? Also should I be closing and > rolling back the transaction? > > //Mock scenario > > @Inject > private HibernateSessionManager hibernateSessionManager; > > public void onActionFromTest() { > Session session = hibernateSessionManager.getSession(); > > for (int i = 0; i < 100000; i++) { > employee = new Employee("George " + i); > > session.save(employee); > > if (i % 250 == 0) { > session.flush(); > session.clear(); > hibernateSessionManager.commit(); > } > } > > session.flush(); > session.clear(); > hibernateSessionManager.commit(); > > > > On Fri, Oct 25, 2013 at 9:07 AM, Thiago H. de Paula Figueiredo < > thiag...@gmail.com> wrote: > > > On Fri, Oct 25, 2013 at 10:53 AM, Barry Books <trs...@gmail.com> wrote: > > > > While it's true you can run into problems by nesting @CommitAfter the > same > > > can be said about nesting any commits. The Tapestry database model is > > > simple. There is one connection per request and when you call commit it > > > does a commit. > > > > > > > <pedantic> > > Tapestry itself doesn't have any database model. It's a web framework and > > nothing else. You can use it with any database, including none. > > Tapestry-Hibernate is a package that provides *simple* support for > > Hibernate and should be used in *simple* scenarios. If you need something > > that's not simple, like any transaction handling not supported by > > @CommitAfter, use Tapestry and some transaction handler (EJB, Spring-TX, > > etc) but not Tapestry-Hibernate. > > </pedantic> > > > > > > > > > > > > > > > On Fri, Oct 25, 2013 at 7:31 AM, Lance Java <lance.j...@googlemail.com > > > >wrote: > > > > > > > I'm assuming a fork is broken too because it's no good for eating > soup? > > > > Sounds like you need a spoon, it's easy to write your own > annotation... > > > > Perhaps you want a @MaybeCommitAfter ;) > > > > > > > > > > > > > > > -- > > Thiago > > > > > > -- > George Christman > www.CarDaddy.com > P.O. Box 735 > Johnstown, New York >