gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:36:16 28 4
gpt4 key购买 nike

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com