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]