Version 2.3.0.677.
Jeff Butler wrote:
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] <mailto:[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