使用Oracle 10g中的Hibernate将数据保存到Clob中

我在Hibernate中有一个带有java.sql.Clob列的表

hbm文件:

        

这是ClobModel

 private Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } private Clob clobData; public Clob getClobData() { return clobData; } public void setClobData(Clob clobData) { this.clobData = clobData; } 

当我在hibernate中尝试这个时:

 SessionFactory sf = new Configuration().configure("clob.cfg.xml").buildSessionFactory(); Session sess = sf.openSession(); ClobModel cb = new ClobModel(); cb.setId(101); try { // getClobData() method returns String, trying to convert it into java.sql.Clob and then assign it to the model cb.setClobData(new javax.sql.rowset.serial.SerialClob(new ClobInsert().getClobData().toCharArray())); } catch (SerialException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } sess.save(cb); sess.flush(); System.out.println("Exit!!!"); 

我得到一个例外:

 javax.sql.rowset.serial.SerialClob cannot be cast to oracle.sql.CLOB 

上面提到的所有Clob都是java.sql.Clob类型。

不确定如何将String转换为java.sql.Clob

您需要将字段的类型显式映射到java.sql.Clob