`
kevin_gzhz
  • 浏览: 58921 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

CLOB等大字段在Hibernate中的处理总结

阅读更多

最近在做一个项目的前台页面展现时要对一个存在Clob大字段实体(UserEntity.java)进行查询操作,考虑到在某些展现页面中是不需要展现大字段的,听过hibernate有对普通属性进行延迟抓取,所以查看了一下Reference,发现配置这个延迟抓取还不简单,需要运行时字节码增强,一看就很晕,在网上查了下资料,就对大字段的查询处理问题,总结了一下,初步有3种实现方案:

      1、使用hibernate的属性延迟抓取,在属性上定义fetch = FetchType.LAZY,然后借助类增强器对二进制Class文件进行强化处理,通过ANT调用Hibernate类增强器对UserEntity.class文件进行强化处理,脚本如下: 

<project name="HibernateSample" default="instrument" basedir=".">
  <property name="lib.dir" value="./lib"/>
  <property name="classes.dir" value="./bin"/>
  
  <path id="lib.class.path">
     <fileset dir="${lib.dir}">
         <include name="**/*.jar"/>
     </fileset>
   
  <target name="instrument">
     <taskdef name="instrument"
         classname="org.hibernate.tool.instrument.InstrumentTask">

        <classpath path="${classes.dir}"/>
        <classpath refid="lib.class.path"/>
     </taskdef>
        
     <instrument verbose="true">
        <fileset dir="${classes.dir}/com/cn/hibernate/db/entity">
           <include name="UserEntity.class"/>
        </fileset>
     </instrument>
  </target>
</project>

 注:脚本中涉及的配置路径,根据项目目录修改。

     2、将UserEntity实体分解成2个实体,UserEntity中不包括Clob属性,UserDetailEntity继续自UserEntity,同时包含Blob属性。 普通查询时候查询UserEntity对象,在处理带有Clog需求的User的时候使用UserDetailEntity对象。

     3、别搞那么复杂,直接写sql进行查询,想要那个字段,自己取那个字段。 
       
   

分享到:
评论

相关推荐

    Hibernate存储Clob字段的方式总结

    介绍了利用Hibernate将一个长字符串转换为流存储至Clob字段中,然后再从Clob字段中读出来,转换为字符串输出的方式

    关于在Hibernate中对于Clob,Blob字段的处理方法

    oracle的jdbc驱动程序,用这个版本的操作Clob,blob类型的数据很方便。 博文链接:https://zhenjw.iteye.com/blog/173419

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    spring+hibernate 解决大字段(clob)

    是我自己验证过的 用的是oracle10数据库 文件里面有具体的配置。

    spring+hbernate对clob、blob字段的处理

    一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1...

    hibernate Blob、Clob字段的映射的例子

    hibernate Blob、Clob字段的映射的例子.数据库mysql,数据库放在文件夹里面,例子的说明文章在我的csdn blog: http://blog.csdn.net/zhengcandan

    spring+hibernate操作oracle的clob字段

    J2EE开发中,经常会遇到存储大文本的文字信息,而oracle数据库的vachar字段最大能存储4000个字节,存储更大的信息必须使用clob或blob字段,本文档就是针对j2ee开发中对colb字段操作的实现。

    Hibernate操作Oarcle中Clob、Blob字段小结

    NULL 博文链接:https://sjsky.iteye.com/blog/1154916

    关于Clob类型在Hibernate中 的应用小结.rar

    这种做法不必处理clob(Character Large Object), blob(Binary Large Object)等格式的字段类型,但不易做transaction的控制,而且增加了对文件的处理操作,不算是较佳的一个方案。另一个做法是使用clob, blob等字段...

    Hibernate对Blob,Clob的操作

    使用Hibernate映射Blob,Clob字段,并对这些字段完成存,取功能

    Hibernate对BLOB CLOB操作

    NULL 博文链接:https://ylsuccess.iteye.com/blog/411005

    解析使用jdbc,hibernate处理clob/blob字段的详解

    本篇是对使用jdbc,hibernate处理clob/blob字段进行了详细的分析介绍,需要的朋友参考下

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    Hibernate注释大全收藏

    • 属性对应的类型实现了Serializable,则属性被映射为@Basic并在一个列中保存该对象的serialized版本。 • 属性的类型为 java.sql.Clob or java.sql.Blob, 则映射到 @Lob 对应的类型。 映射主键属性 @Id 注解可将...

    DBKING使用指南

    再比如LOB字段的处理,可以直接通过增、删、改、查等接口处理,遇到较大的LOB,也可以用流的方式处理,避免内存溢出的问题。再比如获取数据库序列,我们采用了统一的算法,不同的数据库都使用同一个接口来获取序列,...

    Spring中文帮助文档

    在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect ...

    Spring API

    在应用服务器中使用Hibernate的注意事项 12.3. JDO 12.3.1. 建立PersistenceManagerFactory 12.3.2. JdoTemplate和JdoDaoSupport 12.3.3. 基于原生的JDO API实现DAO 12.3.4. 事务管理 12.3.5. JdoDialect ...

Global site tag (gtag.js) - Google Analytics