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