We already discussed that. If you want to separate transaction management from wicket use a dao/service layer that lives inside spring and lets spring handle transaction management. That way you have declarative transaction management with retries and all that good stuff. Check out wicket-phonebook from wicket-stuff for a good starting point. If you are using jdk5 there are features that significantly shorten and simplify the spring configuration file.
-Igor > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Gili > Sent: Thursday, October 20, 2005 9:58 AM > To: [email protected] > Subject: Re: [Wicket-user] Wicket, Hibernate and > StaleObjectStateException > > > Fair enough, I have something similar going right now. > But this still leaves one problem: > > If StaleObjectStateException is thrown inside > Form.onSubmit() I am forced to handle it (and retry) inside > onSubmit() as opposed to > (ideally) handling it outside Wicket and retrying the entire > HTTP request. Right now I have a whole bunch of transaction > blocks defined > *inside* my application code which is a disaster. It kills > readability as well as making my application aware of > transactions when ideally it shouldn't have to care about it. > > In http://www.hibernate.org/42.html they write: "Our > goal really is to remove any transaction demarcation code > from the data access code" which is exactly what I'm trying > to accomplish... > > Gili > > Igor Vaynberg wrote: > > Instead of doing this: > > > > Onbeginrequest() { mysession=factory.opensession(); > > mysession.begintransaction(); } > > > > Session getSession() { return mysession; } > > > > Do this: > > > > Onbeginrequest() { mysession=null; } > > > > Session getSession() { if (mysession==null) { > > mysession=factory.opensession(); mysession.begintransaction(); } > > return mysession; } > > > > Then when an error occurs just reset mysession back to null > and next > > time you need one you will get a fresh one > > > > > > -Igor > > > > > > > >>-----Original Message----- > >>From: [EMAIL PROTECTED] > >>[mailto:[EMAIL PROTECTED] On Behalf Of Gili > >>Sent: Wednesday, October 19, 2005 11:44 PM > >>To: [EMAIL PROTECTED] > >>Subject: [Wicket-user] Wicket, Hibernate and > StaleObjectStateException > >> > >>Hi, > >> > >> I'm trying to figure out how to handle > StaleObjectStateException in > >>the context of Wicket. Using the current-state pattern as reference > >>(http://www.hibernate.org/42.html) if a > StaleObjectStateException is > >>thrown, I'd like to rollback the transaction, close the > session, open > >>a new session and transaction and retry the operation. > Ideally I want > >>to keep this logic completely out of the Wicket code. I > simply don't > >>see how this can be done. > >> > >> For example, say I have a page containing a Form and > >>Form.onSubmit() is invoked and in its body > StaleObjectStateException > >>is thrown. Following the "Session per HTTP request" > pattern, we're in > >>a new HTTP request (I > >>think) but I don't think Wicket will invoke beginRequest() and > >>endRequest() before and after Form.onSubmit(). Even if it did, I'd > >>have no way to signal to Wicket to retry the > >>onSubmit() operation by catching the exception outside it. > >> > >> So on the one hand, I don't want to catch the > exceptions inside the > >>Wicket code. On the other hand, I can't retry the operation > if I catch > >>the exception outside the Wicket code. > >> > >> Your advice would be appreciated. > >> > >>Thank you, > >>Gili > >>-- > >>http://www.desktopbeautifier.com/ > >> > >> > >>------------------------------------------------------- > >>This SF.Net email is sponsored by: > >>Power Architecture Resource Center: Free content, downloads, > >>discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl > >>_______________________________________________ > >>Wicket-user mailing list > >>[email protected] > >>https://lists.sourceforge.net/lists/listinfo/wicket-user > >> > >> > >> > > > > > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: > > Power Architecture Resource Center: Free content, downloads, > > discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl > > _______________________________________________ > > Wicket-user mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > -- > http://www.desktopbeautifier.com/ > > > ------------------------------------------------------- > This SF.Net email is sponsored by: > Power Architecture Resource Center: Free content, downloads, > discussions, > and more. http://solutions.newsforge.com/ibmarch.tmpl > _______________________________________________ > Wicket-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ Wicket-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-user
