On 07/04/2010 12:09 AM, cowwoc wrote:
Hi,

    I am getting an error message:

"JDBC requires that the JdbcType must be specified for all nullable parameters [...] The error may involve <mapper name>-Inline". Granted, telling me the mapper name is useful but I believe we can improve this error message in two regards:

1. I mistakenly read "nullable parameters" as "nullable columns" and wasted time looking for problems in my database schema. I wonder if others have made a similar mistake...? Is it possible to rephrase this as follows? "Mapper methods cannot accept null arguments without a properly configured JdbcType. Either specify a JdbcType or refrain from passing in null."

2. I noticed that when this exception is thrown iBatis has quite a bit more information available to it. Is it possible to add the following information to the error message?

Prepared statement: "SELECT * FROM animals WHERE name = ? AND age > ?", parameter #2 was null

This would enable me to track down exactly which parameter was equal to null.

Thank you,
Gili

The error message turned out to be even more misleading than I first expected. I had this code:

@Select("SELECT value FROM seat_properties WHERE seat = #{seat} AND key = #{key}")
    String get(short seat, String key);

I wrongly assumed that iBatis would grab the parameter names from the method declaration. Instead, it names the parameters #{1}, #{2}, etc. When iBatis tried invoking this method, it couldn't find #{seat} so it assigned it a null value and failed with the aforementioned error message. I had to use the @Param annotation to fix this:

@Select("SELECT value FROM seat_properties WHERE seat = #{seat} AND key = #{key}")
    String get(@Param("seat") short seat, @Param("key") String key);

Shouldn't iBatis fail-fast when the parameter it is looking up ("seat" in my case) is missing, as opposed to assigning it a null value? A nice error message would be "Could not find parameter #{seat}. The following parameters are defined: #{1}, #{2}." I would have caught on fairly quickly with that error message.

Gili

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org
For additional commands, e-mail: user-java-h...@ibatis.apache.org

Reply via email to