Clinton is right, I tried this with many different varieties of generic
interface and it worked for me every time.
So we need your test case that reproduces the problem.
Jeff Butler
On Thu, May 15, 2008 at 4:52 PM, Clinton Begin <[EMAIL PROTECTED]>
wrote:
> Generics should work fine. I haven't read this whole thread about the
> inheritance yet, but generics such as this should work without problems, as
> long as PK is a simple type, *OR*, you create a custom type handler for
> whatever you're using for the PK.
>
> public interface BaseDomain<PK extends Serializable>
> {
> public PK getCodigo();
> }
>
>
> To Java, in this case, PK will basically always be a Serializable as far as
> the reflection API is concerned. So all you need to do is be explicit when
> defining your map to this property.
>
> <parameter property="codigo" javaType="string" .../>
> ....
> <result property="codigo" javaType="string" .../>
>
> Etc.
>
> As for the problem this thread describes, I suggest writing that unit test
> you were talking about so that we can better understand the problem and
> debug it if necessary.
>
> Cheers,
> Clinton
>
>
> On Thu, May 15, 2008 at 2:38 PM, Thiago F. G. Albuquerque <
> [EMAIL PROTECTED]> wrote:
>
>> But... why? Is this a design decision? Are there any plans to support
>> generics in the future?
>>
>> Thiago
>>
>> Jeff Butler wrote:
>>
>>> Ahhh...this is far beyond the introspection capability of iBATIS. iBATIS
>>> is built for JDK 1.4 and will not understand these types of getters.
>>> Jeff Butler
>>>
>>> On Thu, May 15, 2008 at 2:11 PM, Thiago F. G. Albuquerque <
>>> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
>>>
>>> Jeff Butler wrote:
>>>
>>> OK - we need to see the SQL map (just the update) and the two
>>> Java classes. Hopefully they are not too big :)
>>>
>>>
>>> I'm afraid they are :-/ And to make matters worse, all the
>>> indentifiers are in Portuguese.
>>> I can write some minimal code that reproduces the problem and send
>>> it to the list.
>>>
>>> But, I was thinking... maybe the problem is not the inheritance. In
>>> fact, all the getters in this class are inherited. What is different
>>> about this getter in particular is that its return type in the
>>> superinterface is generic:
>>>
>>> public interface BaseDomain<PK extends Serializable>
>>> {
>>> public PK getCodigo();
>>> }
>>>
>>> ("codigo"(pt) == "code"(en)).
>>>
>>> Thiago
>>>
>>
>>
>