问题描述:
升级为Hibernate 4.x 保存clob字段时,在使用JUNIT测试使用ojdbc6.jar正常保存,事务正常提交。但是在使用Tomcat数据连接池进行保存是就出现了如下异常:
Caused by: java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setCharacterStream(ILjava/io/Reader;J)V
at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$4$1.doBind(ClobTypeDescriptor.java:114)
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:93)
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:280)
.....
环境描述:
java version "1.6.0_43"
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
apache-tomcat-6.0.37
hibernate-4.2.6.Final
spring-3.2.4.RELEAS
解决办法:
使用ojdbc6.jar驱动
修改Hibernate全局参数 hibernate.jdbc.use_streams_for_binary=true
使用@Lob注解
替换Tomcat 6.x 中的 lib/tomcat-dbcp.jar 为Tomcat7.x中的。