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: [email protected]
For additional commands, e-mail: [email protected]