What version of iBATIS are you using? I have tests with this exect scenario
working now.
Jeff Butler
On Wed, May 14, 2008 at 2:40 PM, Thiago F. G. Albuquerque <[EMAIL PROTECTED]>
wrote:
> Hi,
>
> When I have a inherited getter in the domain object and the corresponding
> attribute appears in an inline parameter map, I get a NullPointerException:
>
> Caused by: com.ibatis.common.jdbc.exception.NestedSQLException: --- The
> error occurred in Evento.abator.sqlmap.xml. --- The error occurred while
> applying a parameter map. --- Check the
> Evento.abatorgenerated_updateByPrimaryKey-InlineParameterMap. --- Check the
> parameter mapping for the 'codigo' property. --- Cause:
> java.lang.NullPointerException
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:94)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
> at
> org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:384)
> at
> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:194)
> ... 56 more
> Caused by: java.lang.NullPointerException
> at
> com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameter(BasicParameterMap.java:165)
> at
> com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.setParameters(BasicParameterMap.java:125)
> at
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:79)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
> ... 60 more
>
> Here is BasicParameterMap.java:165:
>
> // Set Parameter
> TypeHandler typeHandler = mapping.getTypeHandler();
> if (value != null) {
> => typeHandler.setParameter(ps, i + 1, value,
> mapping.getJdbcTypeName()); // <= typeHandler == null !
> } else if (typeHandler instanceof CustomTypeHandler) {
> typeHandler.setParameter(ps, i + 1, value, mapping.getJdbcTypeName());
> } else {
>
> When I overwrite the getter in the subclass, the error disappears. Maybe
> iBatis can't get the return type of inherited methods and, as a result,
> can't resolve the type handler?
>
> Regards,
> Thiago
>
>