0

JDK 1.6x、Hibernate 3.2.7、Oracle 10g (ojdbc14.jar)

我有一个包含 clob 的(实体)类。通过 RESTful 调用,我收到了一个字符串,该字符串将成为 clob 的内容。我无法将字符串塞入一个 clob 以供以后持久使用。这是上课....

public class MyClass implements java.io.Serializable {
private static final long serialVersionUID = 5507279748316866736L;
private long id;
private String name;
private String description;
private java.sql.Clob featuresJson;
...etc...

这是反序列化代码...

        try {
        String jsonStr = msoNode.path("features_json").getTextValue();
        SerialClob clob = new SerialClob(jsonStr.toCharArray()); 
        mso.setFeaturesJson(clob);
    } catch (Exception e) {
        log.error("MyClassDeserializer.deserialize(): Exception deserializing the features JSON." + e.getMessage());
    }

反序列化后,我进入道的合并语句......

MyClass savedOverlay = myClassDao.merge(overlay);

其中“overlay”是一个反序列化的“MyClass”实例。此时我可以窥视 clob 内部并查看数据——但是返回的实例的 clob 字段为空,并且数据库中的 clob 列也为空!

我的反序列化代码有什么问题?我尝试了其他一些事情,但每次都失败(至少这是一致的!)

4

1 回答 1

1

解决了!

有一个注释@Lob 需要在列上指定。还需要将已反向工程为 java.sql.Clob 类型的同一列更改为 String。

于 2011-03-07T14:30:13.260 回答