The problem I experienced using hivetranse and the "open session in view" was this:

1) execute one transactional method, transaction is committed when the method returns and the hibernate session is kept open 2) execute another transactional method, hivetranse opens a second hibernate session, transaction is committed when the method returns and the hibernate session is kept open

Now I have two hibernate sessions for the same request and can easily get hibernate errors regarding the same persistent object being on two different sessions.

It seems like hivetranse should be able to reuse the same session throughout a single request, as long as it doesn't hit a nested method demarcated as "requires new".

Has anyone found a solution for this? Or at least seen the same issue?

-- Mark R

Nick Faiz wrote:
Just a note that you dont need to write code to control the Hibernate session & transaction lifecycles if you use HiveUtils (aka Hivetranse).

http://sourceforge.net/projects/hivetranse/

In my current project, I configured the hibernate session as a hivemind component, which is injected into whichever component I like. I also use the HiveUtils transaction interceptor, which transparently handles transactions for all components using it, following the 'open session in view' pattern.

http://hivetranse.sourceforge.net/web/quickstart.html#start.config.hibernate

Nick

On 12/04/2006, at 10:21 PM, bÄ—gantis debesis wrote:

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

Nick Faiz,
Developer
www.q9software.com



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




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

Reply via email to