Hibernate操作Blob/Clob时,发生cannot be cast to oracle.sql.BLOB错误分析
来源:互联网 发布:python 获取当前周数 编辑:程序博客网 时间:2024/06/05 14:55
由Hibernate返回的Blob对象实际上是代理类SerializableBlobProxy的实例,提供了java.sql.Blob接口定义的方法(实际上是通过反射的方式),表现得像是个实现java.sql.Blob接口的对象(只是貌似),但实际上是个Proxy类型的实例,因此不能把这个实例转化成oracle.sql.BLOB类型。会发生类型转换异常(java.lang.ClassCastException),提示信息为cannot be cast to oracle.sql.BLOB
当用System.out.println(blob)输出信息的时候,显示的是oracle.sql.BLOB@10fba68,很具迷惑性。但使用System.out.println(blob.getClass().getName())输出信息的时候,显示的是$Proxy6,这显示了真实的情况,也就是说显示了这个实例的真实面目。
解决方法很简单如下:
SerializableBlobProxy proxy = (SerializableBlobProxy )Proxy.getInvocationHandler(blob); java.sql.Blob realBlob = proxy.getWrappedBlob();Proxy为java.lang.reflect中的。
1 0
- Hibernate操作Blob/Clob时,发生cannot be cast to oracle.sql.BLOB错误分析
- Hibernate操作Blob/Clob时,发生cannot be cast to oracle.sql.BLOB错误分析
- Hibernate操作Blob/Clob时,发生cannot be cast to oracle.sql.BLOB错误分析
- Hibernate操作Blob/Clob时,发生ClassCastException:$Proxy263 cannot be cast to oracle.sql.BLOB错误分析
- hibernate 3.5+ 后的BLOB操作cannot be cast to oracle.sql.BLOB
- java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB
- java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB
- java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB
- weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 不改程序解决方法
- Hibernate 操作Blob Clob
- Hibernate 操作Blob Clob
- java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB
- JAVA 操作 Oracle Clob,Blob
- IBATIS操作ORACLE BLOB CLOB
- hibernate对clob和blob的操作
- Hibernate对BLOB CLOB操作详解
- hibernate 写入 clob, Blob
- Hibernate Blob和Clob
- 排序-冒泡排序
- 网页文章内容排版工具:Type Nugget
- H5 缓存机制浅析 - 移动端 Web 加载性能优化
- android 实现全屏代码
- Linux内核分析--内存管理等
- Hibernate操作Blob/Clob时,发生cannot be cast to oracle.sql.BLOB错误分析
- uv动画
- Python初学者的17个技巧
- Oracle110个常用函数
- CSS制作水平垂直居中对齐
- 记录一笔-二叉树简单实现
- 多项式乘法运算 NTT(数论变换)实现
- 《Python相关文章索引(1)》
- oracle hint语句