使用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
。