参见原文:http://wangrui.iteye.com/blog/178924。
我的处理方法如下:
一、Model中的数据成员类型为String,映射的数据库字段类型为org.springframework.orm.hibernate.support.ClobStringType
/**
* 电影信息Model
*/
@Entity
@Table(name = "BK_CTT_MOVIE")
@SuppressWarnings("serial")
public class MovieModel extends BaseModel implements Serializable {
@Id
private long id;
@Column(name = "STARS")
@Type(type="org.springframework.orm.hibernate3.support.ClobStringType")
private String stars;
....get/set方法
}
二、如果使用spring的这个clob类型就需要在applicationContext.xml中的sessionFactory里修改如下配置
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor" ref="nativeJdbcExtractor" />
</bean>
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor"
lazy-init="true" />
<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<property name="hibernateProperties">
<value>
hibernate.dialect=${hibernate.dialect}
hibernate.query.substitutions=true 'Y', false 'N'
hibernate.show_sql=true
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.jdbc.batch_size=50
hibernate.jdbc.use_streams_for_binary=true
</value>
<!-- Turn batching off for better error messages under PostgreSQL -->
<!-- hibernate.jdbc.batch_size=0 -->
</property>
<property name="lobHandler" ref="oracleLobHandler" />
</bean>
三、第三步没有修改为使用oci10,依然使用jdbc:oracle:thin连接方式。使用noticeManager.save(notice);
即可以正常保存的。
分享到:
相关推荐
在Hibernate的映射文件(.hbm.xml)或使用注解时,可以声明一个属性为CLOB类型。例如,使用注解的方式: ```java @Lob @Column(name = "LONG_TEXT") private String longText; ``` 3. **动态映射**:动态映射...
在Java世界中,尤其是在持久化框架Hibernate中,处理Clob类型的数据需要特别的方法和配置。 在Hibernate中,Clob类型的字段通常有两种处理方式: 1. **传统JDBC方式**: 在这种模式下,开发者需要直接操作Clob...
Hibernate存储Clob字段的方式总结涉及了在Java开发中...在实际开发中,可以根据需求选择使用String直接映射Clob的方式或者使用Clob类型处理方式,并注意Hibernate session的创建和管理方法,以保证代码的简洁性与效率。
### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...
本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...
3.3 直接使用Clob类型: 对于大数据量的Clob字段,推荐直接使用Clob类型进行操作。在实体类中定义Clob类型的属性,并在Hibernate映射文件中相应配置。这样可以避免一次性加载整个Clob内容到内存,从而降低内存消耗。...
本篇文章将探讨在Hibernate中如何使用Clob类型来处理大文本数据,主要涉及Clob类型的概念、使用场景、在Hibernate中的配置以及一些注意事项。 Clob(Character Large Object)是SQL标准定义的一种数据类型,用于...
在 Java 中,处理 Clob 类型需要使用 @Lob 注解来指定该字段为大规模字符数据类型。@Lob 注解可以与 @Basic 注解结合使用,以确保正确地读取和写入 Clob 类型的数据。例如: ``` @Column(name="SUBSTANCE", ...
`description`字段是文档的长文本描述,用CLOB类型表示。 接下来,我们讨论如何在Hibernate中保存这些对象。通常,你需要先将BLOB或CLOB的数据转换为适合数据库存储的形式。对于BLOB,这可能是字节数组;对于CLOB,...
其中,处理 Oracle 数据库中的 CLOB 类型数据是一项重要的技能。CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在 Oracle 数据库中广泛使用。下面我们将详细介绍如何使用 Hibernate 来存取 ...
- 插入数据:在保存实体时,Hibernate会自动处理Clob和Blob对象的序列化。可以通过`getClob()`和`setClob()`方法设置和获取Clob值,对于Blob,使用`getBlob()`和`setBlob()`。 - 更新数据:同样,更新实体时,...
总结来说,Hibernate通过配置文件和实体类实现了对BLOB和CLOB类型的支持,允许开发者在Java代码中方便地操作大数据。通过SessionFactory和Session接口,我们可以进行数据的增删改查操作,同时注意数据库的性能优化,...
其中,`entity`对象包含了一个CLOB类型的属性,`assessRegDao`是一个接口,它的`update`方法由Hibernate实现,能够正确地处理CLOB字段的更新。 6. **注意事项** - 确保你的Oracle JDBC驱动版本与所使用的Oracle...
通常,要解决超过4000字节的数据,一种做法是将数据写入文件,xml或plain file都可以,数据...另一个做法是使用clob, blob等字段类型,主要有:采用传统的jbdc方式、把clob以string方式处理、直接使用clob类型三种方案
以下是一些常见的数据库字段类型及其对应的Hibernate Java类型: 1. **整型**:在数据库中,整型通常有TINYINT、SMALLINT、INTEGER、BIGINT等。在Hibernate中,它们可以对应为`java.lang.Byte`、`java.lang.Short`...
总之,Hibernate通过提供对Blob和Clob的直接支持,使得在Java Web应用中处理大数据类型变得相对简单。正确理解和使用这些特性,可以有效地管理数据库中的大对象数据,提高应用的灵活性和可维护性。
5. **使用Hibernate处理`CLOB`和`BLOB`** - Hibernate提供了更高级的抽象,使得处理大对象更加方便。在配置文件中,可以将`CLOB`映射为`clob`,`BLOB`映射为`binary`。 - 例如,在Hibernate的实体类中,可以这样...