[
http://issues.apache.org/jira/browse/IBATIS-261?page=comments#action_12366814 ]
Arne Burmeister commented on IBATIS-261:
----------------------------------------
I just got the same with 2.1.6!
The bug seems to depend on the JDBC-Driver!
No Problem with HSQL, but every time with Oracle Thin Driver...
We also use Spring (2.0) and Java 1.5 - the code looks like:
? extends org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
{
protected void update(final String updateName, final Collection< ? >
parameterObjects)
{
debug(updateName, parameterObjects);
SqlMapClientTemplate sqlTemplate = getSqlMapClientTemplate();
Integer result = (Integer)sqlTemplate.execute(new
SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException
{
executor.startBatch();
for (Object parameterObject : parameterObjects) {
executor.update(updateName, parameterObject);
}
return new Integer(executor.executeBatch());
}
});
if (result.intValue() != parameterObjects.size()) {
throw new JdbcUpdateAffectedIncorrectNumberOfRowsException(
updateName, parameterObjects.size(), result.intValue());
}
}
}
We always get the JdbcUpdateAffectedIncorrectNumberOfRowsException
> CLONE -The method executor.executeBatch() always returns 0.
> -----------------------------------------------------------
>
> Key: IBATIS-261
> URL: http://issues.apache.org/jira/browse/IBATIS-261
> Project: iBatis for Java
> Type: Bug
> Components: SQL Maps
> Versions: 2.1.0
> Environment: SUN JVM 1.4.2 On Windows
> Reporter: Arne Burmeister
>
> I am using Sql Maps 2.1.5 with Spring 1.2.4.
> I have a method as following.
> I want to get the number of rows updated in the batch .
> But it always returns 0.
> public int insertBatchError(final List batchErrorList) {
> Integer count = (Integer) getSqlMapClientTemplate().execute(new
> SqlMapClientCallback() {
> public Object doInSqlMapClient(SqlMapExecutor executor) throws
> SQLException {
> executor.startBatch();
> for (int i = 0; i < batchErrorList.size(); i++) {
> BatchErrorDTO batchErrorDto = (BatchErrorDTO)
> batchErrorList.get(i);
> executor.update("insertBatchError", batchErrorDto);
> }
> int count = executor.executeBatch();
> return new Integer(count);
> }
> });
>
> return count.intValue();
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira