[英]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.