Those update statements ARE in a transaction. But you should NEVER manage transactions inside the DAO.  The transaction in this case is taken care of outside of the scope of this particular method (I believe in this case it is actually an automatic DAO transaction, so you might not find the calls to start/commit/end).

Clinton

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