I wouldn't inject sessions into your pages directly.  Dealing with the
persistence store should be abstracted away from the view layer using a
DAO/Repository layer.  

If you want an example of how to do that, you can download my example
application (via SVN of course) from:

http://www.carmanconsulting.com/svn/public/tapernate-example/trunk

This example does include the Open-Session-In-View pattern along with a
custom property persistence strategy for persistent entities and a few other
goodies.  The source code for the other libraries can be obtained from:

http://www.carmanconsulting.com/svn/public/tapernate/trunk
http://svn.javaforge.com/svn/hivemind/spring-hibernate3/trunk
http://svn.javaforge.com/svn/hivemind/hivemind-utils/trunk
http://svn.javaforge.com/svn/hivemind/spring-transaction/trunk

Note: To checkout from javaforge, you have to use anonymous/anon as the
username/password.



-----Original Message-----
From: bÄ—gantis debesis [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, April 12, 2006 8:21 AM
To: tapestry-user@jakarta.apache.org
Subject: tapestry-hibernate integration problem

Hi everyone,

I extended a BasePage and added there a getSession method, which opens a
hibernate session and starts a transaction (if it is not yet opened). Also,
I commit the transaction and close the session on the overrided
BasePage.detach() method.

The problem is that when I save something on page 1 and then redirect to
page 2, page 2 gets the old information from the database. That is because
detach method on page1 (where the transaction commit resides) is invoked
after page2 getInformation() method called.

So, the question is, is there a method like detach but which is invoked
before another page starts its activities? Or maybe using transaction per
request is bad at all?

Or maybe you know some other easy way to intergrate tapestry and hibernate?

Thank you in advance,
Valdemaras



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to