ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clinton Begin <clinton.be...@gmail.com>
Subject Re: two parametr in Mapper method
Date Tue, 13 Oct 2009 10:45:15 GMT
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 <t.prochazka@centrum.cz>

>
> 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" <clinton.begin@gmail.com>
> > Komu: user-java@ibatis.apache.org
> > 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 <guyr-ml1@burntmail.com
> >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 <guyr-ml1@burntmail.com
> <mailto:
> >>> guyr-ml1@burntmail.com>> 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 <t.prochazka@centrum.cz
> >>>        <mailto:t.prochazka@centrum.cz> <mailto:t.prochazka@centrum.cz
> >>>        <mailto:t.prochazka@centrum.cz>>>
> >>>
> >>>
> >>>
> >>>           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:
> >>>        user-java-unsubscribe@ibatis.apacheorg
> >>>        <mailto:user-java-unsubscribe@ibatis.apache.org>
> >>>           <mailto:user-java-unsubscribe@ibatis.apache.org
> >>>        <mailto:user-java-unsubscribe@ibatis.apache.org>>
> >>>
> >>>           For additional commands, e-mail:
> >>>        user-java-help@ibatis.apache.org
> >>>        <mailto:user-java-help@ibatis.apache.org>
> >>>           <mailto:user-java-help@ibatis.apache.org
> >>>        <mailto:user-java-help@ibatis.apache.org>>
> >>>
> >>>
> >>>
> >>>
> >>>    --    Guy Rouillier
> >>>
> >>>
> >>>
>  ---------------------------------------------------------------------
> >>>    To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> >>>    <mailto:user-java-unsubscribe@ibatis.apache.org>
> >>>    For additional commands, e-mail: user-java-help@ibatis.apache.org
> >>>    <mailto:user-java-help@ibatis.apache.org>
> >>>
> >>>
> >>>
> >>
> >> --
> >> Guy Rouillier
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> >> For additional commands, e-mail: user-java-help@ibatis.apache.org
> >>
> >>
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>

Mime
View raw message