The main reason that I use the Spring stuff is for the transaction
demarcation stuff.  Hibernate doesn't include anything "out-of-the-box" that
allows you to do "nested" transactions (i.e. REQUIRES_NEW).  You'd have to
roll that yourself and Spring has already done that for me.  Although, I'm
looking into just implementing it on my own, since it's really not that
difficult to do (keep a stack around for your "current session").

-----Original Message-----
From: news [mailto:[EMAIL PROTECTED] On Behalf Of hv @ Fashion Content
Sent: Wednesday, August 16, 2006 3:35 PM
To: users@tapestry.apache.org
Subject: Re: tapernate question

I had a similar concern with Trails, and made my own persistence service 
that uses Hibernate directly.
With Hibernate 3.1 you don't really need the Spring ORM stuff.

"Xiaoshu Wang" <[EMAIL PROTECTED]> skrev i en meddelelse 
news:[EMAIL PROTECTED]
> Thanks, James.
>
> I am able to get the exception now.  However, the exceptions seem to be
> wrapped into spring's DataAccessException.  The original cause of
> HibernateException is gone.  I tried to traverse the Exception track by
> getCause(), but only get the DataIntegrityViolationException and
> java.sql.BatchUpdateException.
>
> I am writing an application that has two fields that can violate the same
> contraints.  The lost of HibernateException won't allow me to figure out 
> the
> which field is duplicated.
>
> Xiaoshu
>
>> -----Original Message-----
>> From: James Carman [mailto:[EMAIL PROTECTED]
>> Sent: Wednesday, August 16, 2006 6:05 AM
>> To: 'Tapestry users'
>> Subject: RE: tapernate question
>>
>> If you want more fine-grained control over what's going on,
>> turn off transaction-per-request and use service methods with
>> transaction interceptors on them to achieve what you want.
>> The reason that you didn't get the exception is that the
>> transaction isn't committing until the end of the request and
>> that's when you'll get the unique constraint violation
>> exception.  The exception presenter might not even catch
>> this, come to think of it.  I actually changed the way
>> Tapernate is implemented in my local copy.  I might need to
>> push that out to the rest of you.
>>
>> -----Original Message-----
>> From: Xiaoshu Wang [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, August 15, 2006 9:45 PM
>> To: 'Tapestry users'
>> Subject: RE: tapernate question
>>
>> I tried to put something like
>>
>> try {
>>   getSession.update(message);
>> } catch (Throwable e) {
>>    System.out.println("Catch it.");
>> }
>>
>> under the MessageDaoImpl.update(Message), but it seems not
>> doing anything.
>>
>> How to hook with ExceptionPresenter?
>>
>> Xiaoshu
>>
>>
>> > -----Original Message-----
>> > From: James Carman [mailto:[EMAIL PROTECTED]
>> > Sent: Tuesday, August 15, 2006 9:09 PM
>> > To: 'Tapestry users'
>> > Subject: RE: tapernate question
>> >
>> > You can put in a hook into the ExceptionPresenter or wrap your call
>> > with a try/catch block.  The HibernateService class can be found at:
>> >
>> > http://svn.javaforge.com/svn/hivemind/hivemind-utils/trunk/src
>> /main/java/com
>> > /javaforge/hivemind/util/HiveMindService.java
>> >
>> > The username/password is anonymous/anon.
>> >
>> >
>> > -----Original Message-----
>> > From: Xiaoshu Wang [mailto:[EMAIL PROTECTED]
>> > Sent: Tuesday, August 15, 2006 9:03 PM
>> > To: users@tapestry.apache.org
>> > Subject: tapernate question
>> >
>> > Hi, I am playing around Tapernate, which I have a question
>> to ask.  It
>> > seems that the exception thrown by a database query would
>> not be able
>> > to be catched at the application level.
>> > For isnstance, I justed added a unique constraints on the
>> > Message.value property.  If I ever try to created a message
>> that has a
>> > duplicated value with an existing Message, it break the
>> application.
>> > I didn't find a way to catch the exception.  Is this
>> expected behavior
>> > or not?
>> >
>> > Also, where I can find the source code for the HibernateService?
>> >
>> > Thanks,
>> >
>> > XW
>> >
>> >
>> >
>> ---------------------------------------------------------------------
>> > 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]
>> >
>> >
>> >
>>
>>
>> ---------------------------------------------------------------------
>> 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]
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> 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]



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

Reply via email to