1
У меня есть таблица с java.sql.Clob
колонки в спящемСохранение данных в CLOB с использованием Hibernate в Oracle 10g
hbm
файл:
<class name="com.model.ClobModel" table="table1">
<id name="id" column="id">
<generator class="assigned"></generator>
</id>
<property name="clobData" type="clob">
<column name="ClobData"></column>
</property>
Это 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;
}
Когда я попробовал это в спящий режим:
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.lang.ClassCastException: javax.sql.rowset.serial.SerialClob не может быть приведен к oracle.sql.CLOB'. Пожалуйста, взгляните на преобразование String в CLOB в вышеприведенный код (который я использовал с помощью 'SerialClob'. Кажется, что это неверно :( – user182944
Не используйте его, просто используйте' java.sql.Clob' и hibernate будет делать –
ok, тогда эта строка покажет ошибку компиляции: 'cb.setClobData (new ClobInsert(). getClobData());' Здесь. getClobData возвращает 'String', но в модели setClobData ожидает' java. sql.Clob'. Пожалуйста, дайте мне знать, где еще можно изменить? Пожалуйста, помогите – user182944