Hibernate:Caused by: java.lang.ClassNotFoundException: oracle.sql.BLOB

在spring里插入 BLOB字段 kp.setContent(content.getBytes())

方法 :hibernate saveOrUpdate

报 Caused by: java.lang.ClassNotFoundException: oracle.sql.BLOB 

使用tomcat 没问题,可服务器改为 WebSphere .就报错。

把Spring内置提供的NativeJdbcExtractor转换器 改了一下,结果:问题解决


总结如下:

      1、对于我们的工程:

           在发布环境中,要将nativeJdbcExtractor  换成             org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor留意log4j日志,此时的blob字段的java类型为oracle.sql.Blob

      2、Spring内置提供的NativeJdbcExtractor转换器有:

          C3P0NativeJdbcExtractor

          CommonsDbcpNativeJdbcExtractor

          JBossNativeJdbcExtractor

          NativeJdbcExtractor

          NativeJdbcExtractorAdapter

          SimpleNativeJdbcExtractor

          WebLogicNativeJdbcExtractor

          WebSphereNativeJdbcExtractor

          XAPoolNativeJdbcExtractor

          要根据不同服务器及时修改,以免浪费大量时间。

          位于 org\springframework\jdbc\support\nativejdbc 下