In this case i would have pulled the individual calls out to the
service layer and wrapped them in a transaction. I have some rare
cases where i have needed to place more complex code in my dao. In
those cases i still wrap the single call to my method in a transaction
on the service layer.

Brandon

On 5/24/05, Brandon Goodin <[EMAIL PROTECTED]> wrote:
> Message was sent to me privately... so i am posting it to the list
> -----
> But for example, in the JPetStoreExample, in the AccountSqlMapDao, this is a
> method:
> 
>   public void insertAccount(Account account) {
>     update("insertAccount", account);
>     update("insertProfile", account);
>     update("insertSignon", account);
>   }
> 
> Aren't those different update statements better off in a transaction? And
> why no different calls from the Service layer?
> I'm just trying to understand the difference.
> 
> >From: Brandon Goodin <[EMAIL PROTECTED]>
> >Reply-To: Brandon Goodin <[EMAIL PROTECTED]>
> >To: ibatis-user-java@incubator.apache.org
> >Subject: Re: transactions
> >Date: Tue, 24 May 2005 12:45:59 -0600
> >
> >It is not neccessary to call transactions on only one statement.
> >
> >Transactions should be handled on the Service layer and make more
> >fine-grained calls to the DAO layer.
> >
> >Brandon
> >
> >On 5/24/05, Lieven De Keyzer <[EMAIL PROTECTED]> wrote:
> > > At  http://www.reumann.net/struts/ibatisLesson1/step6.do
> > > this is an example in a ibatis/struts tutorial
> > >
> > > public int update(String statementName, Object parameterObject) throws
> > > DaoException {
> > >     int result = 0;
> > >     try {
> > >         sqlMap.startTransaction();
> > >         result = sqlMap.executeUpdate(statementName, parameterObject);
> > >         sqlMap.commitTransaction();
> > >     } catch (SQLException e) {
> > >         try {
> > >             sqlMap.rollbackTransaction();
> > >         } catch (SQLException ex) {
> > >             throw new DaoException(ex.fillInStackTrace());
> > >         }
> > >         throw new DaoException(e.fillInStackTrace());
> > >     }
> > >     return result;
> > > }
> > >
> > > Is it necessary to have a transaction started for just 1 statement
> > > execution?
> > >
> > > Also, what's the better way? Doing a transaction in a Service class,
> >that
> > > has multiple DAO's, or doing it in the DAO class, doing different
> >statements
> > > in one method? Or is there no difference?
> > >
> > >
> > >
>

Reply via email to