實體類:
package com.Martin.M;

import java.sql.Clob;

public class TUserProfile extends TUserInfo {
    
private Clob resume;
    
    
public TUserProfile(){
        
    }

    
    
public TUserProfile(String name, Integer age, Clob resume){
        
super(name,age);
        
this.resume = resume;
    }

    
    
    
public Clob getResume(){
        
return resume;
    }

    
    
public void setResume(Clob resume){
        
this.resume = resume;
    }

}

HBM文件:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- Generated 2011-10-17 17:49:02 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
    
<class name="com.Martin.M.TUserProfile" table="TUSERINFO" polymorphism="explicit">
        
<id name="id" type="java.lang.Integer">
            
<column name="ID" />
            
<generator class="increment" />
        
</id>
        
<property name="name" type="string" column="name" />
        
<property name="age" type="java.lang.Integer" column="age" />
        
<property name="resume" type="java.sql.Clob" column="resume" />
    
</class>
</hibernate-mapping>

在main中直接如下寫(《深入淺出Hibernate》的寫法):
oracle.sql.CLOB clob = (oracle.sql.CLOB)userInfo.getResume();
結果報:Exception in thread "main" java.lang.ClassCastException: $Proxy8 cannot be cast to oracle.sql.CLOB。
以下是網上查到的解釋(飛諾網(www.diybl.com):http://www.diybl.com/course/3_program/java/javajs/20100719/460611.html):

簡單看了一下Hibernate的相關源碼,原來由Hibernate返回的blob對象實際上是代理類SerializableBlobProxy的實例,提供了java.sql.Blob接口定義的方法(實際上是通過反射的方式),表現得像是個實現java.sql.Blob接口的對象(貌似),但實際上是個Proxy類型的實例,因此不能把這個實例轉化成oracle.sql.BLOB類型。

  當用System.out.println(blob)輸出信息的時候,顯示的是oracle.sql.BLOB@10fba68,很具迷惑性。但使用System.out.println(blob.getClass().getName())輸出信息的時候,顯示的是$Proxy6,這顯示了真實的情況,也就是說顯示了這個實例的真實面目。

  一句話,這個實例是個穿著java.sql.Blob馬甲的Proxy類型的實例。

     最后如下修改:
    

SerializableClobProxy  proxy = (SerializableClobProxy)Proxy.getInvocationHandler(userInfo.getResume());
        java.sql.Clob jClob 
= proxy.getWrappedClob();
        oracle.sql.CLOB oClob 
= (oracle.sql.CLOB)jClob;

    OK,搞定,哦也~