2011-03-04 13 views
0

JDKの1.6倍を使用して、Oracle CLOBデータ/ wのインスタンスをマージOracle 10gの(ojdbc14.jarが)のJava:私はCLOBが含まれています(エンティティ)クラスを持って、3.2.7を休止、休止状態

。 RESTfulなコールを介して、私はclobの内容になる文字列を渡されます。私は後の永続性のためにストリングを詰め物に詰め込むのに問題があります。ここでは、クラス....逆シリアル化後、私はダオのMERGE文によ

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

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... 
ここ

デシリアライズコードだが... ...だ

MyClass savedOverlay = myClassDao.merge(overlay); 

「オーバーレイ」は、逆シリアル化された「MyClass」インスタンスです。この時点で私は、clobの内部を覗いてデータを見ることができます - しかし、返されたインスタンスには、ヌルアウトされたclobフィールドがあり、データベースのclobカラムもnullです!

デシリアライゼーションコードの何が問題になっていますか?私は他のいくつかのことを試みましたが、毎回失敗を受け取ります(少なくとも一貫しています!)

答えて

1

解決済み!

注釈@Lobが列に指定する必要があります。また、リバースエンジニアリングされていたjava.sql.Clob型の列と同じ列をStringに変更する必要がありました。

+0

聞いてみるとうれしいです。この回答の上矢印または下矢印の横にある中空のチェックマークをクリックすると、あなた自身の回答を受け入れることができます。 –