这真是个老生常谈的问题了,也不在新鲜。技术日益的更新。我们用起来也越来越的方便。
看了网上很多这方面的资料,以前自己也弄过。但是今天发现了这么一个bug,在javaeye上面我也看见了一位同志,说了这个bug,并且提了一个建设性的修改。呵呵。
就是在hibernate中,当插入String字段在1001至2000长度时会报这个错误,当长度不在这个区间就不会出这种问题,
错误:
java.sql.SQLException: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值
http://showtime520.iteye.com/blog/304932这里是这个博主写的。我想知道,有什么好的方法、来解决我整个工程。
====================
现在确定,还是驱动的原因、我用的ojdbc14-10.2.0.1.0.jar 可是公司服务器上面是Oracle9i 最后在我本地电脑上安装了Oracle10g 就没有发生了。
java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column
好像是编码的问题,不过这里面都属于驱动的原因
================================================================
今天发现一个方法可以解决:在1001至2000长度中报错这个问题
首先驱动还是用ojdbc14-10.2.0.1.0.jar 这个可以有效插入更大的值
我们在配置CLOB字段的时候用:
<property name="dpRresource" type="org.springframework.orm.hibernate3.support.ClobStringType" length="1048576000">
<column name="DP_RESOURCE"/>
</property>
这里length不是长度哈,是大小,字节数
配置这个的时候,要注意的就是:我们的所有操作事务都应该控制在 业务层,而不是数据访问层,ok 终于搞定了。
我的事务是这样配置的:
<!-- 事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!-- 切面配置 -->
<aop:config proxy-target-class="true">
<aop:pointcut expression="execution(* com.bjhy.prisonweb.service.*.impl.*ServiceImpl.*(..))"
id="transactionPointcut" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="transactionPointcut" />
</aop:config>
<!-- 通知配置 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true" propagation="NOT_SUPPORTED" />
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
分享到:
相关推荐
Hibernate存储Clob字段的方式总结涉及了在Java开发中使用Hibernate操作大型文本字段Clob的操作方法。本文主要介绍了两种操作Clob字段的方法,一种是将Clob字段直接映射为String类型,另一种是使用Clob类型进行处理。...
本文将详细介绍如何在Spring与Hibernate框架结合的情况下,有效地处理Oracle 10g数据库中的CLOB字段。 #### 一、环境配置 为了确保项目能够顺利运行,首先需要搭建好开发环境。本示例中使用的环境配置如下: 1. *...
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
hibernate Blob、Clob字段的映射的例子.数据库mysql,数据库放在文件夹里面,例子的说明文章在我的csdn blog: http://blog.csdn.net/zhengcandan
在Hibernate中,如果Clob字段的值是字符串,可以通过将Clob字段映射为String类型,让Hibernate自动处理转换。这种方式简单易用,但可能不适合非常大的文本,因为可能会导致内存溢出。 3.3 直接使用Clob类型: 对于...
本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...
同时,Hibernate的实体映射文件(例如`Users.hbm.xml`)用于定义实体类与数据库表之间的映射关系,其中包括了如何处理BLOB和CLOB字段。 以`Users.hbm.xml`为例,假设我们有一个`Users`实体类,其中有一个`...
在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...
在Hibernate的XML映射文件中,你需要为这个Clob字段指定映射规则,例如: ```xml <property name="summaryClob" type="org.hibernate.type.ClobType"> <column name="SUMMARY_CLOB" /> ``` **CRUD操作**: ...
此外,对于频繁读取的CLOB字段,可以考虑将其索引或部分内容缓存。 最后,虽然Hibernate提供了便捷的接口,但在处理BLOB和CLOB时,还需要了解所用数据库的特性,因为不同的数据库可能有不同的限制和最佳实践。例如...
本主题“hibernate动态映射表处理Oracle的CLOB类型”主要聚焦于如何在Hibernate中有效地管理和操作CLOB字段。在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍...
接下来介绍如何通过 Hibernate 将 CLOB 数据保存到 Oracle 数据库中。 **3.1 创建会话工厂** 首先,创建 Hibernate 的 `SessionFactory` 对象,这是与数据库交互的基础。 **3.2 创建事务** 在进行数据库操作之前...
一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1...
在Java的数据库操作中,`CLOB...总之,无论是使用JDBC还是Hibernate,处理`CLOB`和`BLOB`字段都需要特殊的处理方式,尤其是在Oracle等数据库中。了解这些处理方法对于开发涉及大数据量文本和二进制数据的应用至关重要。
本篇将主要围绕Hibernate在与各种数据库字段类型对应的Java类型进行讲解,以及如何在实际项目中进行训练。 一、Hibernate与数据库字段类型的映射 1. 基本类型映射: - Integer -> int, Smallint - Long -> ...