ORA-22835 с использованием JPA (слишком маленький буфер)

Я пытаюсь сохранить объект с аннотированным строковым полем @Lob. Содержимое этих полей превышает ограничение размера буфера в 40 КБ.

Первая проблема, с которой я столкнулся, была связана с методом setString, используемым внутри реализации JPA (Hibernate в моем случае) и драйвером JDBC Oracle. Эта проблема была решена добавлением

<property name="hibernate.connection.SetBigStringTryClob" value="true"/>

в мой файл persistence.xml.

Затем ошибка изменилась на ошибку ORA-22835 (буфер слишком мал). ¿Есть ли какой-либо способ, которым JPA решает эту проблему, не переходя к низкоуровневой реализации? Какие-либо предложения?


person Svoice    schedule 23.02.2010    source источник
comment
Какую версию драйвера Oracle JDBC вы используете?   -  person malaverdiere    schedule 23.02.2010


Ответы (1)


Можете ли вы попробовать драйверы Oracle 10g Release 2 (подберите самый последний файл ojdbc14.jar, т.е. 10.2.0.4) или более позднюю (более старые версии содержат ошибки, как указано в предыдущий ответ).

person Pascal Thivent    schedule 23.02.2010
comment
Хорошо, тогда... Я скачал последние драйвера (которые, как я думал, у меня уже были, но я ошибался). Теперь у меня есть еще одна ошибка: ORA-24816 => Расширенные данные привязки не LONG, предоставленные после фактического столбца LONG или LOB. Я читал, что это проблема Oracle. Есть ли способ заставить JPA (или базовую реализацию, Hibernate в моем случае) сортировать столбцы в заданном порядке, чтобы столбец Clob был последним? Похоже, это проблема, которая у меня сейчас... - person Svoice; 24.02.2010
comment
Проблема только что исчезла :S Я не очень этому рад, потому что то, что исчезло сегодня, может появиться завтра, но это похоже на проблему с конфигурацией. - person Svoice; 29.03.2010