In your second XML example, are you still using the same method signature?
Like this:
List<Send> getAllItems(@Param("offset") int offset, @Param("limit") int
limit);
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "
http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="cz.apache.ibatis.SendMapper">
<select id="getAllItemsX" parameterType="map"
resultType="cz.apache.ibatis.Send" >
select * from send LIMIT #{offset}, #{limit}
</select>
</mapper>
Clinton
2009/10/12 Tomáš Procházka <[email protected]>
>
> I tested it and it doesn't works for me.
>
> This works great now:
>
> @Select({"SELECT * FROM send LIMIT #{offset}, #{limit}"})
> List<Send> getAllItems(@Param("offset") int offset, @Param("limit")
> int limit);
>
> but this not:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "
> http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
> <mapper namespace="cz.apache.ibatis.SendMapper">
> <select id="getAllItemsX" parameterType="map"
> resultType="cz.apache.ibatis.Send" >
> select * from send LIMIT #{offset}, #{limit}
> </select>
>
> </mapper>
>
>
> I got:
>
> Exception in thread "main" org.apache.ibatis.exceptions.IbatisException:
> ### Error querying database. Cause: org.apache.ibatis.type.TypeException:
> JDBC requires that the JdbcType must be specified for all nullable
> parameters.
> ### The error may exist in SendMapper.xml
> ### The error may involve cz.apache.ibatis.SendMapper.getAllItemsX-Inline
> ### The error occurred while setting parameters
> ### SQL: select * from send LIMIT ?, ?
> ### Cause: org.apache.ibatis.type.TypeException: JDBC requires that the
> JdbcType must be specified for all nullable parameters.
> at
> org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
>
>
> How Can I specify parametr types?
>
> ______________________________________________________________
> > Od: "Clinton Begin" <[email protected]>
> > Komu: [email protected]
> > Datum: 06.10.2009 09:33
> > Předmět: Re: two parametr in Mapper method
> >
> >multiple parameters will require the XML equivalent parameter type to be
> >Map. Behind the scenes, it will do exactly what you do today -- wrap
> >multiple params in a Map. This keeps it simple and consistent.
> >Clinton
> >
> >On Mon, Oct 5, 2009 at 12:23 AM, Guy Rouillier <[email protected]
> >wrote:
> >
> >> I'm glad to see you are considering allowing multiple parameters. I've
> >> found having to bind everything into one is cumbersome.
> >>
> >> What are you thinking of doing for XML? I'd suggest replacing
> >> ParameterType with ParameterList, with the latter a cut and paste from
> the
> >> mapper method. Your example below would look like:
> >>
> >> parameterList="int offset, int limit"
> >>
> >> From a programmer's perspective, I'd find the cut and paste easy, and
> >> iBatis would have everything it needs to enable named parameters in the
> SQL.
> >>
> >> Clinton Begin wrote:
> >>
> >>> There's no way to introspect on the parameter names.
> >>> So your choices become:
> >>>
> >>> @Select({"SELECT * FROM send LIMIT #{1}, #{2}"})
> >>> List getAllItems(int offset, int limit);
> >>>
> >>> ...Or...
> >>>
> >>> @Select({"SELECT * FROM send LIMIT #{offset}, #{limit}"})
> >>> List getAllItems(@Param("offset") int offset, @Param("limit") int
> limit);
> >>>
> >>> Both suck. But we'll probably default to the first, and allow for the
> >>> second.
> >>> Gross.
> >>>
> >>> Clinton
> >>>
> >>> On Sun, Oct 4, 2009 at 8:00 PM, Guy Rouillier <[email protected]
> <mailto:
> >>> [email protected]>> wrote:
> >>>
> >>> I'd be curious to understand what the Java limitation is. I would
> >>> have thought that with Java 1.5's support of varargs, limitations
> >>> such as this would no longer exists. Of course, to use varargs
> >>> here, I suppose we'd have to use Object[], which would shoot your
> >>> type safety.
> >>>
> >>> Clinton Begin wrote:
> >>>
> >>> It's a limitation in Java. However, we are working on a couple
> >>> of potential options. But it's not possible to do it the way
> >>> you've written it (which is really sad, because it's perfectly
> >>> possible in C# and other languages).
> >>>
> >>> Clinton
> >>>
> >>> 2009/10/4 Tomáš Procházka <[email protected]
> >>> <mailto:[email protected]> <mailto:[email protected]
> >>> <mailto:[email protected]>>>
> >>>
> >>>
> >>>
> >>> Why not supported this?
> >>>
> >>> @Select({"SELECT * FROM send LIMIT #{offset}, #{limit}"})
> >>> List getAllItems(int offset, int limit);
> >>>
> >>>
> >>> Its limitation of Java or bug in actual version?
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail:
> >>> [email protected]
> >>> <mailto:[email protected]>
> >>> <mailto:[email protected]
> >>> <mailto:[email protected]>>
> >>>
> >>> For additional commands, e-mail:
> >>> [email protected]
> >>> <mailto:[email protected]>
> >>> <mailto:[email protected]
> >>> <mailto:[email protected]>>
> >>>
> >>>
> >>>
> >>>
> >>> -- Guy Rouillier
> >>>
> >>>
> >>>
> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [email protected]
> >>> <mailto:[email protected]>
> >>> For additional commands, e-mail: [email protected]
> >>> <mailto:[email protected]>
> >>>
> >>>
> >>>
> >>
> >> --
> >> Guy Rouillier
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [email protected]
> >> For additional commands, e-mail: [email protected]
> >>
> >>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>