Строки › ​​Преобразование 4000 в CLOB с использованием спящего режима

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

У меня есть поле, аннотированное с помощью @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 один и тот же в обоих случаях.

Приветствуются любые ответы.


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


Ответы (1)


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

person Billy Bob Bain    schedule 18.09.2009