用户登录
用户注册

分享至

hibernate 读取clob

  • 作者: 亖呉?盀
  • 来源: 51数据库
  • 2020-10-15

在spring中采用OracleLobHandler来处理oracle大字段(包括clob和blob),则在程序中不需要引用oracle的特殊类,从而能够保证支持代码支持多数据库。


在Spring的主配置文件xx.xml中的配置SessionFactory的bean中配置:





    

  


hibernate.cfg.SWSSessionFactoryBean" lazy-init="false" autowire="default" dependency-check="default">


  ...


 

      

    


  ...




nativeJdbcExtractor和 lobHandler 设置为 lazy-init="true",

因为 nativeJdbcExtractor需要通过运行期的反射机制获取底层的 JDBC 对象,

所以需要避免在 Spring 容器启动时就实例化这两个 Bean。


<注:上面的SWSSessionFactoryBean是被重写过的,继承AnnotationSessionFactoryBean>


1、首先数据表中的clob类型对应java持久化类的String类型;而blob类型对应byte[]类型 

2、1.定义

hibernate标签时,持久化类中对应clob类型的属性的hibernate 

type应为org.springframework.orm.hibernate.support.ClobStringType;而对应blob类型

的属性的hibernate 

type应为org.springframework.orm.hibernate.support.BlobByteArrayType。


   2.如果通过spring 注解功能配置PoJo类时,在该大字段属性的getXXX()方法前面加上注解:


public String xxx;


...


@Lob

@Type(type="org.springframework.orm.hibernate3.support.ClobStringType")

@Column(length=10000)

public String getXXX ()

{

 return xxx;

}


软件
前端设计
程序设计
Java相关