не может получить тип данных clob из базы данных в объект JPA - PullRequest
2 голосов
/ 23 декабря 2009

Я могу сохранить (spring-hibernate saveorupdate()) поле

 @Lob
 @Column(name = "FILENAME")
 private String filename;

в базу данных оракула тип данных clob

но когда я пытаюсь получить его, я получаю сообщение об ошибке

ОШИБКА - JDBCExceptionReporter.logExceptions (72) | ORA-00932: несовместимые типы данных: ожидается - получил CLOB

ниже, как я получаю из базы данных

DetachedCriteria crit = DetachedCriteria.forClass(Storagefile.class);
crit.addOrder(bSortOrder ? Order.asc(sortColumnId) : Order.desc(sortColumnId));
 List<Storagefile> result = (List<Storagefile>) getHibernateTemplate().findByCriteria(crit, nFirst, nPageSize);

Ответы [ 2 ]

6 голосов
/ 23 декабря 2009

Это не ясно из вашего примера кода, но я предполагаю, что вы пытаетесь отсортировать по столбцу CLOB, а Oracle не позволяет этого. Этот код ошибки - прекрасный способ сообщить вам об этом Oracle.

Вы уверены, что вам нужно использовать CLOB для хранения имени? Oracle может хранить до 4000 символов в столбце VARCHAR2, этого достаточно для имени файла? Если вы хотите отсортировать по filename, то это то, что вам нужно сделать.

1 голос
/ 23 декабря 2009

Вы пробирались через это:

https://www.hibernate.org/56.html

Кажется, есть проблема с драйвером Oracle 9i и большими объектами (не знаю, какие у вас настройки).

...