insert 语句不能插入超长字段 ,使用clob类型字段在hibernate中的解决之道

.hbm.xml文件中:
      <property name="jbqk" type="clob">
            <column name="JBQK" />
       </property>
pojo类中字段类型:
       private Clob jbqk;
引用

Manager 类:
TqaDZdsyhfxbg tqaDZdsyhfxbg = (TqaDZdsyhfxbg)dataclass;
tqaDZdsyhfxbg.setJbqk(Hibernate.createClob(" "));// 注意这里的参教是一个空格
tx = session.beginTransaction(); //事务处理


session.save(tqaDZdsyhfxbg);
// 调用flush方法,强制Hibernate立即执行insert sql
session.flush();
// 通过refresh方法,强制Hibernate执行select for update
session.refresh(tqaDZdsyhfxbg, LockMode.UPGRADE);

SerializableClob clob = (SerializableClob)  tqaDZdsyhfxbg.getJbqk();
            Clob jClob = clob.getWrappedClob();
            CLOB oClob = (CLOB)jClob;
            java.io.Writer writer = oClob.getCharacterOutputStream();
String content=tqaDZdsyhfxbg.getJbqkString();
writer.write(content);
writer.close();



注解:jbqk是个clob字段类型,TqaDZdsyhfxbg 是个持久类,上面的manager类就是向表中写入大文本字段的方法。

你可能感兴趣的:(sql,Hibernate,xml)