I would suggest looking at the JPA demo code in liftweb under the sites
directory. The JPA.scala and Model.scala have some code in there for
handling transactions. There's also a wrapEM method that can help with
catching and handling exceptions. I have a branch underway that improves on
the code a bit (wip-dcb-jpa-jta), but I'm stuck at the moment because of a
weird issue with Jetty JNDI. I may end up just merging some of those changes
back into trunk since it looks like it may be a while before that's
resolved.

Derek

On Fri, Dec 19, 2008 at 8:13 PM, Oliver Lambert <[email protected]> wrote:

> Ha, very observant - I am relying on it to commit or rollback or do
> nothing.
>  I note your recommendation, but I'd rather not have transaction support
> code littered around.
> For my application, I want a transaction lazily created  and closed after
> each request, if it was created.
> If what I am doing is bad design or coding, Im willing to change it.
>
> Oliver
>
> On 20/12/2008, at 1:12 AM, Derek Chen-Becker wrote:
>
> What kind of error are you getting when the EM closes? As long as you're
> not relying on the EM.close to commit your transaction (something I'd
> recommend against anyway) then there really shouldn't be any errors at this
> point.
>
> Derek
>
> On Thu, Dec 18, 2008 at 10:00 PM, Oliver <[email protected]> wrote:
>
>>
>> I started on that path, and thought I could redirect with something like
>>   Full(<span> "some html that redirects to the error page"...
>> </span>).asInstanceOf[T]
>> It feels like a big hack, even if I could get it working and I was a
>> little worried about creating
>> a redirection loop.
>> I've created a static html error page and call it from web.xml for now
>> - it'll have to do for now.
>>
>> On Fri, Dec 19, 2008 at 11:09 AM, David Pollak
>> <[email protected]> wrote:
>> > I'd put a try/finally around the EM.closeEM call so that it does not
>> impact
>> > the stuff that's being rendered to the browser.  Don't let the exception
>> in
>> > the finally block propogate.
>> >
>> > On Thu, Dec 18, 2008 at 1:58 PM, Oliver <[email protected]> wrote:
>> >>
>> >> I was redirecting to an error page using
>> >> LiftRules.logAndReturnExceptionToBrowser, but when I use a LoanWrapper
>> >> to close a EntityManager and an error occurs when closing the entity
>> >> manager, LiftRules.logAndReturnExceptionToBrowser doesn't appear to
>> >> redirect to my error page. Can anyone think of a work around?
>> >>
>> >>
>> >>        // Output a simple error to the user. Link the error message
>> >> to the screen via the current datetime
>> >>        LiftRules.logAndReturnExceptionToBrowser = {
>> >>                RedirectResponse("/error);
>> >>        }
>> >>
>> >>        // Set up a LoanWrapper to automatically close a EntityManager
>> >> if its open
>> >>        S.addAround(List(
>> >>                new LoanWrapper {
>> >>                    def apply[T] (f : => T): T = {
>> >>                        try {
>> >>                            f
>> >>                        } finally {
>> >>                            EM.closeEM // close if open
>> >>                        }
>> >>                    }
>> >>                }))
>> >>
>> >>    }
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > Lift, the simply functional web framework http://liftweb.net
>> > Collaborative Task Management http://much4.us
>> > Follow me: http://twitter.com/dpp
>> > Git some: http://github.com/dpp
>> >
>> > >
>> >
>>
>>
>>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to