- java/
- Java ComboPooledDataSource-com.sun.proxy.$Proxy78不能强制转换为oracle.sql.CLOB
Java ComboPooledDataSource-com.sun.proxy.$Proxy78不能强制转换为oracle.sql.CLOB
Java ComboPooledDataSource-com.sun.proxy.$Proxy78不能强制转换为oracle.sql.CLOB,java,hibernate,connection-pooling,c3p0,Java,Hibernate,Connection Pooling,C3p0,我正在尝试使用C3P0连接池(com.mchange.v2.C3P0.ComboPooledDataSource C3P0-0.9.1.2.jar),但在尝试加载包含Clob(Oracle数据库)的对象时收到此错误:
$Proxy78无法强制转换为oracle.sql.CLOB
有人知道如何解决这个问题吗
完整堆栈跟踪如下所示
引发原因:java.sql.SQLException:由
以下失败:java.lang.ClassCastException:
com.sun.proxy.$Prox
我正在尝试使用C3P0连接池(com.mchange.v2.C3P0.ComboPooledDataSource C3P0-0.9.1.2.jar),但在尝试加载包含Clob(Oracle数据库)的对象时收到此错误:
- $Proxy78无法强制转换为oracle.sql.CLOB
有人知道如何解决这个问题吗
完整堆栈跟踪如下所示
引发原因:java.sql.SQLException:由
以下失败:java.lang.ClassCastException:
com.sun.proxy.$Proxy78不能强制转换为oracle.sql.CLOB
位于com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
位于com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
位于com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
在com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnection.java:432)上
在com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setClob(NewProxyPreparedStatement.java:535)
位于org.hibernate.type.descriptor.sql.ClobTypeDescriptor$2$1.doBind(ClobTypeDescriptor.java:70)
位于org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1$1.doBind(ClobTypeDescriptor.java:56)
位于org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:91)
位于org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:283)
位于org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:278)
位于org.hibernate.type.ComponentType.nullSafeSet(ComponentType.java:340)
位于org.hibernate.persister.entity.AbstractEntityPersister.deterhymate(AbstractEntityPersister.java:2184)
位于org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2559)
... 71更多原因:java.lang.ClassCastException:com.sun.proxy.$Proxy78无法强制转换为oracle.sql.CLOB
位于oracle.jdbc.driver.OraclePreparedStatement.setClob(OraclePreparedStatement.java:6559)
位于oracle.jdbc.driver.OraclePreparedStatementWrapper.setClob(OraclePreparedStatementWrapper.java:158)
在com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setClob(NewProxyPreparedStatement.java:521)
... 79多
所以,这是一个奇怪的问题。c3p0不代理CLOB。不知何故,您得到的CLOB被包装在Java标准动态代理之后。你需要弄清楚这是怎么发生的。您的代理CLOB对象来自哪里
看起来hibernate有时会代理CLOB,请参阅。也许这就是为什么您有一个代理,而不是您的驱动程序所期望的那种CLOB