ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guy Rouillier <guyr-...@burntmail.com>
Subject IBatis 3 TypeHandler resolution
Date Tue, 22 Sep 2009 22:10:40 GMT
I'm new to iBatis and writing my first type handler to map a database 
column to an enum whose underlying type is integer.  I've got it working 
after falling prey to some Java limitations (can't extend enum, can't 
define static methods in interfaces, the combination of which seems to 
prevent me from writing a generalized type handler for all integer-based 
enums.)

However, I'm a little confused as to how type handlers get mapped.  Here 
is my entry in the iBatisConfig.xml file (shortened for readability):

    <typeHandlers>
       <typeHandler javaType="OrderStatusEnum" jdbcType="VARCHAR" 
handler="OrderStatusEnumTypeHandler"/>
    </typeHandlers>

Through trial and error, I discovered that in order to have iBatis apply 
this type handler, in the resultMap result entry I had to specify both 
javaType and jdbcType.  If I supplied only javaType, then iBatis applied 
the default enumTypeHandler (unsuccessfully).

I then found that if I supply typeHandler on the result entry in the 
resultMap, I can dispense with the typeHandler declaration in 
iBatisConfig, and also dispense with javaType and jdbcType in the result 
entry.  That's less typing and accomplishes the same thing.

Am I missing something? (Likely).

Thanks.

-- 
Guy Rouillier

---------------------------------------------------------------------
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