需要使用 iBatis 将对象序列化到一个表的 BLOB 字段中,当然还有反序列化。这就需要用到 iBatis 的 TypeHandler 功能。具体实现并不麻烦,我就不多说了。我实现的是 TypeHandlerCallback 接口,因为相对来说简单点。
在配置的时候,我先尝试了全局配置 TypeHandler。
<typeHandler javaType="xxx" jdbcType="blob" callback="xxx.TypeHandler" />
但是发现配置无效,提示 No type handler could be found to map the property "xxx".
很无奈。之后又试了局部的配置,就是配在 <resultMap> 里面,发现还是不行。试了一下午之后,发现如是配置即可:
<typeHandler javaType="xxx" callback="xxx.TypeHandler" />
就是把 jdbcType 去掉就行了。
具体原因我也不想研究了,有知道的告诉我就行。感觉 iBatis 在文档方面远不如 Hibernate。不过 Hibernate 上手是要比 iBatis 难点,如果文档不好就更恐怖了。