No version of iBATIS has ever actively converted types.  If it worked in iBATIS 2, it was strictly by luck.  It was never a feature though.

You shouldn't need to specify the JDBC type in the example you give though, because it's not nullable (that query would be invalid with a null value).  You would only get that error if you actually pass a null into the query.

Because Java is strongly typed, iBATIS embraces that, while hopefully striking a balance of simplicity and avoids duplicate type definition where possible.


On Fri, Jan 15, 2010 at 12:17 PM, Jun Yang <> wrote:
Hi all,

I have started to use iBATIS 3 and am loving it!  Thanks!

I have a question regarding how to do automatic type conversion.  In iBATIS 2,  if I have "select * from bug where id = #id:NUMERIC#", if the value of id is a string, it's converted to an int automatically.

In iBATIS 3, I have yet to find the equivalent.  I tried "select * from bug where id = #{id,javaType=int,jdbcType=NUMERIC}" and got a class cast exception.  So the right type is expected.

I also tried "select * from bug where id = numeric(#{id})" and got "Cause: org.apache.ibatis.type.TypeException: JDBC requires that the JdbcType must be specified for all nullable parameters."

How can I easily configure to have that string value converted automatically to an integer?

Thanks a lot!