2011-03-04 76 views
0

JDK 1.6倍的Oracle CLOB數據合併實例,Hibernate的3.2.7,Oracle 10g中(ojdbc14.jar)文件的Java:W /使用Hibernate

我有一個(實體)類,它包含一個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); 

哪裏「覆蓋」是一個反序列化的「MyClass」實例。在這一點上,我可以偷看clob並查看數據 - 但是,返回的實例將clob字段置空,並且數據庫中的clob列也爲空!

我的反序列化代碼有什麼問題?我已經嘗試了其他一些事情,但每次都會失敗(至少這是一致的!)

回答

1

已解決!

有一個註釋@Lob需要在列上指定。也被反向工程化爲java.sql.Clob類型的列需要更改爲String。

+0

很高興聽到它被排序。您可以通過點擊此答案上的向上/向下箭頭旁邊的空白複選標記來接受您自己的答案。 – 2011-03-10 23:03:43