ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Barlow" <garybar...@hotmail.com>
Subject Re: Batch not batching!
Date Tue, 18 Oct 2005 15:29:55 GMT
Thanks Clinton,

Yep that has the desired effect, however, I'm running this in the EJB layer 
with container managed transactions. Do you know how startTransaction() / 
endTransaction() behave in this situation?


Gary

>
>You need to wrap the batch in a transaction....
>
>try {
>sqlMapClient.startTransaction();
>sqlMapClient.startBatch();
>...
>sqlMapClient.executeBatch();
>sqlMapClient.commitTransaction();
>} finally {
>sqlMapClient.endTransaction
>}
>
>Clinton
>
>On 10/18/05, Gary Barlow <garybarlow@hotmail.com> wrote:
> >
> > Hi there, I'm using v2.1.5 with spring and attempting to use batched
> > statements but it doesn't seem to batch! The code below functions fine 
>but
> > when testing for duplicate inserts I noticed if failed on the insert
> > rather
> > than the executeBatch() statement. This suggests it's not batching! Also
> > noticed that the count returned from execute batch is always zero.
> >
> > Have I coded this corrrectly? Are there any know issues?
> >
> > public class SqlMapParameterDao extends SqlMapClientDaoSupport 
>implements
> > ParameterDao {
> >
> > ............................
> >
> > public void saveParameterValues(final Parameter parameter, final List
> > vals)
> > throws IntegrityViolationException {
> > try {
> >
> > this.getSqlMapClient().startBatch();
> > for (int i = 0; i < pvals.size(); i++) {
> > ParameterValue parameterValue = (ParameterValue) pvals.get(i);
> > this.getSqlMapClient().insert("insertParameterValue", new
> > ParameterValueCriteria(parameterValue.getParameter().getId(),
> > parameterValue));
> > }
> > int count = this.getSqlMapClient().executeBatch();
> > } catch (SQLException e) {
> > throw new IntegrityViolationException(e.getMessage());
> > }
> > }
> >
> >
> >



Mime
View raw message