2011-03-04 73 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