实体类:
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,搞定,哦也~