Кто-нибудь слышал об этой ошибке раньше:
У меня есть приложение Java 5, которое использует Hibernate 3.3.2 для доступа к базе данных Oracle 10g, драйвер JDBC - это облегченный драйвер Oracle версии 10.2.0.4.0 (самая последняя версия, я думаю).Доступ к базе данных происходит во время транзакции, которая управляется с помощью AOP-инструментов Spring.Существует одна таблица базы данных, сопоставленная одному объекту Java, сопоставление выполняется с помощью аннотаций.В этом объекте есть два атрибута, которые являются CLOB в базе данных.Они помечены в соответствии с JPA «Lob» и являются строками Java.Все работает нормально, если оба атрибута не имеют значений длиной более 4000 символов: после фиксации значения включаются в базу данных, то есть атрибут A содержит значение атрибута B и наоборот.
Это не шутка!
Отладчик Eclipse сообщает мне, что сущность Java имеет правильные значения, пока транзакция не закроется (я не отлаживал обработку весенних транзакций).Эта ошибка не возникает, если оба Clob помечены аннотацией Hibernate 'Type (type = "clob") "(в этом случае они, конечно, должны быть типа java.sql.Clob, а не String).