Строки> 4000 в CLOB преобразование с использованием Hibernate - PullRequest
1 голос
/ 17 сентября 2009

У меня есть класс Java, сохраняющий строку (> 4k) в таблицу базы данных в поле CLOB. Если строка меньше 4 КБ, она работает.

У меня есть поле, аннотированное с помощью @Lob, и первоначально я получал исключение из-за того, что пакетная обработка не поддерживается для потоков, поэтому я установил размер пакета 0 в конфигурации Hibernate, который дает исключение:

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

  at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
  at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
  at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
  at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
  at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
  at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2152)
  at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2035)
  at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2876)
  at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:609)
  at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
  at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2062)
  ... 36 more

Эта проблема возникает только при использовании кода от Grails. Когда я использую тот же код из чистого Java-приложения, я не понимаю проблемы. Оба приложения имеют одинаковую конфигурацию гибернации (за исключением того, что мне нужно установить размер пакета равным 0 в Grails). Является ли проблема разницей в версиях Hibernate, которая, насколько я вижу, составляет 3.2.6ga в Grails и 3.2.5ga для java-приложения. Драйвер Oracle одинаков в обоих случаях.

Любые ответы приветствуются.

1 Ответ

1 голос
/ 18 сентября 2009

Попробуйте с аннотированием поля с помощью @Column(length = Integer.MAX_VALUE). В этом отчете об ошибке в спящем режиме упоминается, что он помог в Дерби.

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