Hibernate使用之:处理clob类型

本文介绍在Spring框架下如何将Model中的String类型映射到数据库的CLOB字段,并展示了具体的配置方法及代码实现。此外,还提供了解决CLOB字段传输限制问题的方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法较多,其中之一是:
1.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方法
}



2.如果使用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" />

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:hibernate/hibernate.cfg.xml" />
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.query.substitutions=true 'Y', false 'N'
hibernate.cache.use_second_level_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.jdbc.fetch_size=50
hibernate.jdbc.use_streams_for_binary=true
hibernate.show_sql=true
</value>
</property>
<property name="lobHandler" ref="oracleLobHandler" />
</bean>
....

3.采用oracle thin方式连接的情况下都有传输限制,解决方法是采用oci连接方式(jdbc:oracle:oci10:@sid)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值