Java: объединение экземпляра с данными Oracle CLOB с использованием Hibernate - PullRequest
0 голосов
/ 04 марта 2011

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

У меня есть класс (сущности), который содержит Clob. Через вызов RESTful мне передают строку, которая будет содержимым 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);

где "overlay" - десериализованный экземпляр "MyClass". в этот момент я могу заглянуть внутрь clob и посмотреть данные - однако возвращенный экземпляр имеет нулевое поле clob, и столбец clob в базе данных также равен нулю!

Что не так с моим кодом десериализации? Я пробовал несколько других вещей, но каждый раз получал сбои (по крайней мере, это соответствует!)

1 Ответ

1 голос
/ 07 марта 2011

РЕШИТЬ!

есть аннотация @Lob, которую необходимо указать в столбце. также тот же столбец, который был перепроектирован, чтобы иметь тип java.sql.Clob необходимо было изменить на String.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...