iBatisでOracleのBlobのread/write

iBatisのLobHandlerはtemporary lobの一時表領域を削除するような仕組みが用意されていない。iBatisのLOBのHandlerを拡張しても実現はできないので、SpringのLobHandlerを使うようにする。そうすると、iBatisのtemporary lob作成時に確保された一時表領域をSpringのほうで削除してくれるようになるので、無事にSpring+iBatisOracleのBLOBが扱える。

ただし、iBatisのSqlExecutorがバグっているので、parameterMapのparameterにSpringのtypeHandlerを指定するとClassCastExceptionで落ちてしまう。ということで、SqlExecutorのparameterMapの解釈部分にパッチをあててSpringのtypeHandlerが扱えるようにしないといけない。