Как получить данные Clob из собственного запроса? - PullRequest
0 голосов
/ 24 сентября 2010

Я пробовал это:

List resultList = session.createSQLQuery("select pack.FuncName ClobData from dual").list()

, где FuncName это имя функции, которая возвращает данные сгустка. Но в resultList я вижу некоторый прокси-объект (например, $Proxy189). Я верю ... Это что-то простое, и я не хочу, чтобы мое отражение получило отражение.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2016

Я нашел, что это решило аналогичную проблему для меня, не требуя прокси или пользовательских конвертеров:

createSQLQuery("...").addScalar("clob_field", StandardBasicTypes.MATERIALIZED_CLOB);
0 голосов
/ 13 сентября 2011

Да, запуск SQL-запросов напрямую не является хорошей идеей (по умолчанию) при использовании ORM.

Вероятно, одним из решений, которое может подойти лучше в вашем случае, будет отображение данных CLOB, возвращаемых вашим FuncName новому неуправляемому объекту (если это так).Вы можете создать новый объект, который соответствует вашим требованиям, и получить данные.Вы можете прочитать об этом здесь , например.

Конечно, может быть другое решение: запустить функцию, которая подготавливает / строит данные сгустка, сохраняйте их (например, во временной структуре таблицы)а затем загрузить его с помощью аннотации @Lob.Проверьте справку о Сопоставление свойств с аннотациями

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