ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: transactions
Date Tue, 24 May 2005 19:40:04 GMT
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 <brandon.goodin@gmail.com> 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 <brandon.goodin@gmail.com>
> >Reply-To: Brandon Goodin <brandon.goodin@gmail.com>
> >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 <lieven_dekeyzer@hotmail.com> 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?
> > >
> > >
> > >
>

Mime
View raw message