hbm一个属性我用了type="clob"
结果cast错误 不能把string转到clob
网上找了下用法
在应用程序中通过Hibernate来保存java.sql.Clob或java.sql.Blob实例时,必须包含两个步骤。
(1)在一个数据库事务中先保存一个空的Blob或Clob实例。
(2)接着锁定这条记录,更新在步骤(1)中保存的Blob或Clob实例,把二进制数据或长文本数据写到Blob或Clob实例中:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
// 先保存一个空的Clob实例
customer.setDescription(Hibernate.createBlob(" "));
session.save(customer);
session.flush();
// 锁定这条记录
oracle.sql.CLOB clob = (oracle.sql.CLOB)customer.getDescription();
// 把长文本数据写到Clob实例中
java.io.Write pw = clob.getCharacterOutputStream();
pw.write(longText); // longText变量表示一个长度超过255的字符串
pw.close();
tx.commit();
session.close();
尽管java.sql.Blob和java.sql.Clob是处理Java大对象的有效方式,但是使用java.sql.Blob和java.sql.Clob受到以下两点限制:
(1)如果在持久化类中定义了一个java.sql.Blob或者java.sql.Clob类型的属性,只有在一个数据库事务中,Blob或者Clob的实例才有效。
(2)有些数据库系统的JDBC驱动程序不支持java.sql.Clob或java.sql.Clob。
转自http://blog.sina.com.cn/s/blog_5f43e6510100c9co.html