java - 在 Oracle 10g 中使用 Hibernate 将数据保存到 Clob

标签 java oracle hibernate oracle10g clob

我在 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;
}

当我在 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

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

关于java - 在 Oracle 10g 中使用 Hibernate 将数据保存到 Clob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367518/

相关文章:

java - hibernate/ Spring : failed to lazily initialize - no session or session was closed

java - 哪些因素会影响 Android 应用程序的速度?

java - Java Swing JTextArea 的长度?

spring - 使用 Hibernate 和 Oracle 找不到架构

c++ - 为什么从客户端应用程序调用 SQL 引擎来调用 PL/SQL?

hibernate - AuditQuery Hibernate 按分区添加顺序

java - 在内部服务中捕获 AccessDeniedException 时防止事务回滚

java - HDFS文件内容的Java拆分方法

java - 如何通过 API 调用填充 Android 中的 AutoCompleteTextView?

oracle - oracle函数错误pls-00103