2009-09-17 2 views
1

데이터베이스 테이블에 문자열 (> 4k)을 CLOB 필드로 유지하는 Java 클래스가 있습니다. 문자열이 4k보다 작 으면 작동합니다. 에 의한문자열> 최대 절전 모드를 사용하는 4000에서 CLOB로 변환

:

나는 분야 @Lob를 사용하여 주석과 처음에 내가 인해 스트림을 지원하지 배치에 예외를 얻고 있었다 것은 내가 예외를주고 최대 절전 모드 설정에 배치 사이즈 0을 만든이 : java.sql.SQLException의 : ORA-01460 : 구현되지 않은 또는 부당한 변환 Grails의의 코드를 사용할 때 나는 단지이 문제를 얻을

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 

을 요청했다. 순수 Java 응용 프로그램에서 동일한 코드를 사용하면 문제가 발생하지 않습니다. 두 애플리케이션 모두 동일한 최대 절전 모드 설정을 가지고 있습니다 (Grails에서 배치 크기를 0으로 설정해야한다는 것을 제외하고). 이 문제는 Hibernate 버전에서 Grails의 3.2.6ga 버전과 자바 애플리케이션의 3.2.5ga 버전의 차이점인가요? 오라클 드라이버는 두 경우 모두 같습니다.

답변을 환영합니다.

+0

어떤 버전의 Oracle JDBC 드라이버를 사용하고 있습니까? –

답변

1

@Column(length = Integer.MAX_VALUE)으로 필드에 주석을 첨부하십시오. 이 hibernate bug report은 Derby에서 도움이되었다고 언급합니다.

관련 문제