ORA-01460: необработанное или необоснованное преобразование, запрошенное с помощью Hibernate @Lob - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть byte[], который я сохраняю в Lob следующим образом:

@Basic(fetch = FetchType.LAZY)
@Column(name = "ABF", length = Integer.MAX_VALUE)
@Lob
private byte[] abf;

Кажется достаточно простым, но когда я пытаюсь сохранить в нем что-либо значительное (более 4000 символов), я получаюследующее исключение при попытке зафиксировать:

java.sql.SQLException: ORA-01460: запрошено невыполненное или необоснованное преобразование

Ни один из файлов, которые я пытаюсь выполнитьМагазин где-то около 32000 символов.Здесь есть еще какие-то ошибки?

Ответы [ 4 ]

2 голосов
/ 11 ноября 2011

См. этот пост .

Ореховая скорлупа:

<property name="hibernate.connection.SetBigStringTryClob">true</property>
<property name="hibernate.jdbc.batch_size">0</property>

Также может быть:

  • Старый драйвер Oracle JDBC (хотя я думаю, тогда ограничение было 2 КБ)
  • Несоответствие версии драйвера / БД
  • В конфигурации Hibernate указан неверный диалект Oracle

Для БД всегда полезно указывать информацию о драйвере и версии БД:)

1 голос
/ 24 сентября 2012

Иногда это помогает делать вещи в таком порядке:

  • вставить новый объект с пустым элементом;
  • фиксации;
  • заполнить лепесток только что созданного объекта;
  • обновить и зафиксировать.
1 голос
/ 10 января 2012

Я только что обновил драйвер оракула, и он работал нормально.

это в основном из-за несоответствия драйвера оракула. ​​

Если у вас есть правильная версия драйвера jdbc, соответствующая вашей версии оракула,это не должно быть проблемой.

0 голосов
/ 11 ноября 2011

@ Дейв Ньютон поставил меня на правильный путь. Ответ включал несколько вещей. Как указал Дейв, я добавил эти строки в hibernate.cfg.xml:

<property name="hibernate.connection.SetBigStringTryClob">true</property>
<property name="hibernate.jdbc.batch_size">0</property>

Ранее я использовал hsqldb-2.0.0.jar. Я обновил это до текущей версии (hsqldb-2.2.5.jar). Я думаю, что это был главный виновник, и я клянусь, я заметил увеличение производительности базы данных с тех пор.

Я также обновился до текущей версии ojdbc14.jar (10.2.0.5). Ранее я был на какой-то старой версии, но я точно не знаю, какая именно. Следует отметить, что даже после обновления до версии 10.2.0.5 проблема не исчезла. Только когда я обновил версию hsqldb.jar, проблема была решена.

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