簡體   English   中英

Java:使用Hibernate合並帶有Oracle CLOB數據的實例

[英]Java: merge instance w/ Oracle CLOB data using Hibernate

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的merge語句...

MyClass savedOverlay = myClassDao.merge(overlay);

其中“ overlay”是反序列化的“ MyClass”實例。 在這一點上,我可以窺探Clob並查看數據-但是返回的實例的Clob字段為null,數據庫中的Clob列也為null!

我的反序列化代碼有什么問題? 我嘗試了其他一些方法,但是每次都失敗(至少是一致的!)

解決了!

在該列上需要指定一個注釋@Lob。 還需要將經過反向工程的java.sql.Clob類型的同一列更改為String。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM