簡體   English   中英

在Oracle 10g中使用Hibernate將數據保存到Clob中

[英]Saving data into Clob using Hibernate in Oracle 10g

我在Hibernate中有一個帶有java.sql.Clob列的表

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.sql.Clob

<property
    name="data"
    type="java.sql.Clob"
    update="true"
    insert="true"
    column="data"
/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM