Spring或Hibernate其实都提供了透明处理Clob的方法
2019独角兽企业重金招聘Python工程师标准>>>
Spring或Hibernate其实都提供了透明处理Clob的方法
只是个人觉得用Spring的做法比hibernate更透明一点(hibernate2.16);
具体做法为:
1.在sessionFactory中加入lobHandler的注射:
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="lobHandler" ref="lobHandler"/>
<property name="mappingResources">
<value>xxx.hbm.xml</value>
.....
</property>
</bean>
2.定义这个lobHandler,值得注意的是这里有Oracle的版本区别:
<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor"/>
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>
因为Oracle9i处理Clob的方式和别的数据库很不一样,甚至与Oracle10g都不兼容,所以这里要用spring提供的SimpleNativeJdbcExtractor.如果使用Oracle10g的话,可以直接使用:
<bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>
对应的应该使用Oracle10g对应的JDBC驱动.
4.在领域对象的hbm中对应的Clob字段应该使用这样的定义:
<property name="context" column="context" type="org.springframework.orm.hibernate.support.ClobStringType" length="1048576000"/>
这里的length是字节了,不是长度哦,最大可以设到2G.对应的,该字段在领域对象中直接申明成String就可以了.当对这个字段写入长数据时直接调用其set方法就可以了,Spring会自己帮你做余下的处理,让你透明的处理Clob字段.
5.业务逻辑层对该字段的操作必须需要在有事务管理的方法中使用,否则会报:
java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with 'jtaTransactionManager' on LocalSessionFactoryBean required 这个错误
转载于:https://my.oschina.net/u/1449895/blog/208252
Spring或Hibernate其实都提供了透明处理Clob的方法相关推荐
- batch spring 重复执行_一个3年老javaer竟然连Spring的事务管理都不知道,惊呆了
1.事务介绍 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 这里我们以取钱的例子来讲解:比如你去ATM ...
- Spring整合Hibernate(2)
6.5.4 使用HibernateCallBack HibernateTemplate还提供了一种更加灵活的方式来操作数据库,通过这种方式可以完全使用Hibernate的操作方式.HibernateT ...
- 基于Spring+Struts+Hibernate实现的健康管理平台
源码及论文下载:http://www.byamd.xyz/tag/java/ 摘要 随着网络技术的不断发展,网站的开发与运用变得更加广泛.这次采用java语言SSH框架(Spring,Struts,H ...
- 整合Struts2、Spring、Hibernate构建J2EE应用
[论文摘要] J2EE即是以Java 2平台为基础的体系结构,又是一组旨在简化企业解决方案的开发.部署.运行.维护等相关复杂问题的技术规范与指南.Struts2.Spring.Hibernate是当今 ...
- gwt 同步和异步_GWT Spring和Hibernate进入数据网格世界
gwt 同步和异步 利用Infinispan Data Grid的功能最大化Hibernate性能. 一个GWT , Spring , JPA , Hibernate , Infinispan集成教程 ...
- Spring MVC + Hibernate + Maven:CRUD操作示例
在本文中,我想研究一个Spring MVC + Hibernate + Maven用法的示例. 这套技术暗含领域领域的基础知识. 因此,我将尝试详细解释所有重要时刻. 其他没有主题的内容将提供指向更多 ...
- 带有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web项目Kickstarter代码库...
我很高兴将第二个项目上传到GitHub,以帮助人们尽快开始Java Web App开发. 我正在与Apache License 2.0共享此代码. 这是相同的网址: https://github.co ...
- GWT Spring和Hibernate进入数据网格世界
利用Infinispan数据网格的功能最大化Hibernate性能. 一个GWT , Spring , JPA , Hibernate , Infinispan集成教程. 在本教程中,我们将讨论如何将 ...
- Struts2和Spring和Hibernate应用实例
Struts2.Spring和Hibernate应用实例 Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用.作为最成功的Web框架,Struts自然拥有众多的优点 ...
最新文章
- Docker学习(一)Ubuntu版本的Docker安装和使用
- mongo c#驱动介绍操作
- vue2 怎么用vite_Vue2和Vue3开发组件有什么区别
- SDO_GEOMETRY Object Type
- webpack4打包工具
- 51单片机(At89C51)组成,引脚介绍
- Matlab 方差分解 程序,跪求+急问:在Dynare中如何做出方差分解?具体命令是什么?谢谢。...
- 【STM32】关于DMA控制器的介绍和使用
- 【笔记】两个根因分析方法:5WHYamp;10WHY
- 惊!12306官网又现用户信息泄露?
- 平凡程序员一年又一年的感悟(2019)
- 矩阵键盘 多键组合 c语言,矩阵键盘的检测和独立按键有很大的区别
- 东南亚——程序员的黑砖窑
- 电脑重装系统-利用PE系统盘安装
- jdk8函数式接口——Consumer介绍
- 一文搞懂各种架构(业务架构、应用架构、数据架构...
- snowboy嵌入式_树莓派3B+使用snowboy唤醒
- 流利阅读 2019.1.5 Gatekeeper at Japan’s ‘Suicide Forest’ hopes music can save lives
- 此版本的 Windows 不再支持 Microsoft Edge
- 基于matlab的水准网间接平差程序设计,matlab水准网间接平差
热门文章
- idea DataGrip 使用图解教程
- layer code 200转码 写一个后台封装通用实体类
- 打印机显示rpg服务器不可用,网络打印机“RPC服务器不可用”的终极解决办法
- mybatis list为入参_Mybatis进阶学习
- java 线程状态_Java线程的状态
- parallelstudio license 位置_UAV位置测量仪器Apogee-D Dual GPS INS
- 大数据在银行的七个应用实例
- 英雄启动出错解决方法_超纯水设备高压泵不启动解决方法
- 打开access文件 提示文件名无效_分享在PS软件打开图像时提示无效的JPEG的解决方法...
- python撤销_python 取消转义字符作用