gpt4 book ai didi

Java:使用 Hibernate 合并实例与 Oracle CLOB 数据

转载 作者:行者123 更新时间:2023-12-01 15:55:18 25 4
gpt4 key购买 nike

JDK 1.6x、Hibernate 3.2.7、Oracle 10g (ojdbc14.jar)

我有一个包含 clob 的(实体)类。通过 RESTful 调用,我传递了一个字符串,该字符串将成为 clob 的内容。我在将字符串填充到 clob 中以供以后持久化时遇到问题。这是类(class)......

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 的合并语句...

MyClass savedOverlay = myClassDao.merge(overlay);

其中“overlay”是反序列化的“MyClass”实例。此时我可以查看 clob 内部并查看数据 - 但是返回的实例将 clob 字段清空,并且数据库中的 clob 列也为空!

我的反序列化代码有什么问题?我尝试了其他一些方法,但每次都会失败(至少是一致的!)

最佳答案

解决了!

需要在列上指定注释@Lob。已被逆向工程为 java.sql.Clob 类型的同一列也需要更改为 String。

关于Java:使用 Hibernate 合并实例与 Oracle CLOB 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com