你可以跟踪一下程序,看看到//2的位置时,取出的pic.getRawstream()是什么类型

解决方案 »

  1.   

    pic.getRawstream()的类型是org.hibernate.lob.SerializableBlob
      

  2.   

    (oracle.sql.BLOB) 那你用这个转型肯定会ClassCastException你查一下SerializableBlob的API,看看这个有没有其他的转换方法
      

  3.   

    oracle.sql.BLOB blob = (org.hibernate.lob.SerializableBlob)pic.getRawstream();//2
    OutputStream os = blob.setBinaryStream(long pos);SerializableBlob的setBinaryStream(long pos) 方法就是返回你所需要的OutputStream但是这个long参数不知道该传什么,API上没有明确指明
    http://www.hibernate.org/hib_docs/v3/api/org/hibernate/lob/SerializableBlob.html#setBinaryStream(long)