ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fullam, Jonathan, ALABS" <jful...@att.com>
Subject RE: Custom Type Handler problems
Date Fri, 13 Jan 2006 14:44:00 GMT
Gareth,
 
I'm not completely sure how Ibatis handles this internally, but my guess is that because your
resultClass is a HashMap and it takes Objects (not Strings specifically), the handler is not
getting called.  If you think about it, the HashMap could contain Integers depending on what
your sql returns.  Possibly, the type check for determing if a type handler should be called
is occuring before any type conversions for populating the HashMap.
 
Hope I've been helpful.
 
-Jonathan

-----Original Message-----
From: Gareth Moorst [mailto:gazj2ee@yahoo.co.uk]
Sent: Friday, January 13, 2006 9:31 AM
To: user-java@ibatis.apache.org
Subject: Custom Type Handler problems


 I seem to be having problems with a global type handler (specified in my sqlmap-config.xml)
not being called when I don't specifically set the java type or type handler in a resultmap.

For instance, say I have the following in an sql map:

<select id="getTariffCodes" resultClass="java.util.HashMap">
select tar_code, tar_description from tariffs
</select>
 
and the following type handler set in my global config file:

<typeHandler javaType="java.lang.String" callback="com.phones4u.datamanagement.datamodel.ibatis.typehandler.StringTrimTypeHandler"/>

When I call the select, my global type handler is ignored even though the objects returned
from the database are of type java.lang.String.
I can make it work if I add a resultmap as follows:

<resultMap class="java.util.HashMap" id="tariffCodeResult">
    <result property="tar_code" javaType="string"/>
    <result property="tar_description" javaType="string"/>
</resultMap>

So it's not really a showstopper, but it was unexpected - is iBatis supposed to work like
this?

I'd like to be able to specify the Type Handler to use globally for all objects of a type
without having to go through and alter all of my simple selects - is this possible?

Cheers,
Gareth Moorst




  _____  

Yahoo!  <http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com>
Messenger NEW - crystal clear PC to PC calling  <http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com>
worldwide with voicemail 


Mime
View raw message