在hibernate中,处理clob字段是很简单的.
在数据库中定义的clob字段,hibernate生成的映射文件里面可以对应成string来处理。
create table INFO ( ID NUMBER(4) not null, NAME VARCHAR2(100), CONTENT CLOB )
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.pojo.Info" table="INFO" schema="ZM"> <id name="id" type="java.lang.Long"> <column name="ID" precision="4" scale="0" /> <generator class="increment" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="100" /> </property> <!-- 此处的类型改成text类型 --> <property name="content" type="text"> <column name="CONTENT" /> </property> </class> </hibernate-mapping>
生成的持久化类里面是string类型
package com.pojo; /** * Info entity. * * @author MyEclipse Persistence Tools */ public class Info implements java.io.Serializable { private Long id; private String name; private String content; public Info() { } public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getContent() { return this.content; } public void setContent(String content) { this.content = content; } }
测试类:
package com.test; import org.hibernate.Session; import com.pojo.Info; import com.util.HibernateManager; public class Test5 { /** * beckham * Dec 18, 2009 10:03:03 AM */ public static void main(String[] args) throws Exception { clobTest() ; } public static void clobTest() throws Exception{ Info info = new Info() ; info.setName("张三") ; info.setContent("这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容") ; Session session = HibernateManager.openSession() ; session.save(info) ; Info i = (Info)session.load(Info.class, new Long(3)) ; System.out.println(i.getId()); System.out.println(i.getName()); System.out.println(i.getContent()); HibernateManager.closeSession() ; } }
输出结果:
Hibernate:
select
max(ID)
from
INFO
3
张三
这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容这是clob测试内容
Hibernate:
insert
into
ZM.INFO
(NAME, CONTENT, ID)
values
(?, ?, ?)