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());
    }

逆シリアル化の後、私は Dao のマージステートメントに取り組んでいます...

MyClass savedOverlay = myClassDao.merge(overlay);

ここで、「overlay」はデシリアライズされた「MyClass」インスタンスです。この時点で、CLOB の内部をのぞいてデータを確認できますが、返されたインスタンスの CLOB フィールドは null 化されており、データベースの Clob 列も null です。

逆シリアル化コードの何が問題になっていますか? 他にもいくつか試しましたが、毎回失敗します(少なくともそれは一貫しています!)

4

1 に答える 1