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? > > > > > > > > > >