clob-如何用hibernate读取Clob字段

问题描述

如何用hibernate读取Clob字段

请问大家,如何通过hibernate读取数据库中Clob字段呢?听说最新的hibernate已经添加对这个的支持了,但是我没找到如何使用。 我用下面这段代码读取Clob字段时,一直报错 ”
ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB“
我用的如下代码,在list=query.list();语句处报错,不能正确读取Clob字段,请教如何编写能正确读取这种字段的代码!
public static List databaseConnection(String hql)
{
List list=new ArrayList();
SessionFactory sf=new Configuration().configure().buildSessionFactory();
Session session=sf.openSession();
Transaction transaction=session.beginTransaction();
Query query=null;

    try
    {
        query=session.createQuery(hql);
        list=query.list();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    finally
    {
        session.close();
    }
    return list;

}

解决方案

其实你不用使用clob类型 直接将映射的实体bean clob字段类型修改为String类型,同时也要将对应的映射的xml对应修改 不用设置长度 使用的时候完全可以按照字符串进行处理就可以

解决方案二:

我知道了,是Clob和Blob的查询语句中不能有distinct、insert、update等操作,我在查询的时候,在HQL语句中加入了distinct,删除这个就能跟查询string类型的变量一样了。

解决方案三:

JDBC读取clob字段

时间: 2024-11-02 20:52:33

clob-如何用hibernate读取Clob字段的相关文章

java 如何保存、读取数据库字段为blob类型的值

问题描述 java 如何保存.读取数据库字段为blob类型的值 java 如何保存.读取javaBean中定义String类型,oracle数据库字段为blob类型的值 这是我的业务逻辑代码 try { String encoding = "GBK"; File file = new File("E:workspaceNeuSoft omcat7.0.40logslocalhost.2015-12-07.log"); if (file.isFile() &&

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

(1)不同数据库中对应clob,blob的类型:mysql中 : clob对应text  blob对应blobdb2/oracle中 clob对应clob blob对应blob (2)domain中对应类型:clob 对应 String   blob 对应 byte[]clob 对庆 java.sql.Clob blob 对应 java.sql.Blob (3)hibernate配置文件中对应类型:clob > clob   blob > binay 也可以直接使用数据库提供类型,例如:ora

hibernate映射clob blob字段

在许多情况下要存储大型字符串或者二进制数据如图片等hibernate也提供了对blob和clob类型的支持 blob采用单字节存储适合保存二进制数据,如图片文件clob采用多字节存储适合保存大型文本等 在mssql中 image和ntext分别对应着blob和clob 表映射文件对两种类型的写法 对于blob格式的映射类型为type="java.sql.Clob"; 对bean的写法没区别直接生成getter和setter 保存一个图片的二进制内容 User user=new User

lob乱码-java 读取CLob字段乱码

问题描述 java 读取CLob字段乱码 fps = new FileOutputStream(file); osw = new OutputStreamWriter(fps,"UTF-8"); bw = new BufferedWriter(osw); Clob content = qrs.getClob(3); String line=content.getSubString((long)1,(int)content.length()); log.info("shell:

c语言-如何用c读取从excel导出的文本文件中的text字段

问题描述 如何用c读取从excel导出的文本文件中的text字段 (初学c语言)我想编写一个实现材料管理功能的程序.因还不会从Excel中直接读取数据,因此选择了从Excel导出到txt文件中,然后再读取到程序当中. 但是问题来了.经常遇到的情形是,记录都有一个或者多个字段是字符型(数据库中的描述,非C语言的字符),从Excel中导出的文本中是以"text,text"处理的,即以英文状态下的双引号将这个字段放在了一起.下面是某条记录: 项目号 仓库名称 货位名称 Ident代码 材料代

SharePoint中读取选项字段所有Choise

对象模型SPFieldChoice SPSite site = SPContext.Current.Site; SPWeb web = site.OpenWeb(SubWebUrl); SPList list = web.Lists[ListName]; SPFieldChoice fieldchoice = (SPFieldChoice)list.Fields["年份"]; for(int i=0;i<fieldchoice.Choices.Count;i++) { write

php ajax js-如何用php读取数据库中的一列数据组成数组

问题描述 如何用php读取数据库中的一列数据组成数组 如何用php读取数据库中的一列数据组成数组,传给ajax,数据是{0,1,2,3,}这样 解决方案 http://www.cnblogs.com/xinlei/archive/2011/12/20/2294131.html 解决方案二: 用ajax传值一般用json,php从数据库取出数据构造成数组,然后jsonencode,最后解析就可以了 解决方案三: $result=$mysql_query("select 要查的字段 from 要查的

mysql 读取int字段后,输出到.net页面数字发生变化

问题描述 mysql 读取int字段后,输出到.net页面数字发生变化 各位大侠,懂.net的帮忙看看,MySQL建立一个视图,通过edx数据模型在后台处理时间段,我将小时Hour定义为int后,输出到页面有的数据就和视图不一样了,具体看上图. 解决方案 怀疑是条件写错了 你取出来用的年月日时 分别比较的 你换成 DateTime.Compare( dt1, dt2 ) 上面图上错的地方,怀疑不是数据的时间错了,而是其他的数据重复了. 你标记的时间错误的数据,在你的结果集里面是重复的. 比如第一

如何用java读取php的gzencode函数输出的压缩字符

问题描述 如何用java读取php的gzencode函数输出的压缩字符 输入的字符串为php的gzencode压缩的字符串,可以用gzdecode解开,但是用java的java.util.zip.GZIPInputStream读入字符串时,总是提示: java.util.zip.ZipException: Not in GZIP format 希望有经验的朋友帮我解答一下,我的代码如下: JAVA import java.io.ByteArrayInputStream; import java.