java - 使用 Oracle 10g 长字段填充 Grails 域对象时出现空指针

标签 java hibernate grails oracle10g

我们正在尝试从 Oracle 10g 数据库填充域对象。相关字段被定义为域对象中的字符串,具有以下约束。

zdata(空白:false,maxSize:3000000)

数据大小约为 70K XML。

表定义如下所示:

ZDATA NOT NULL LONG()

我们使用 grails 生成的 getter 来访问表:

reportData = ReportData.get(reportDataId)

进行此调用时,我们遇到空指针异常。这是我们的堆栈跟踪的一部分。 java.lang.NullPointerException 在 java.lang.String.(String.java:176) 在 oracle.sql.CharacterSet.AL32UTF8ToString(CharacterSet.java:1518) 在 oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:610) 在 oracle.jdbc.driver.DBConversion.CharBytesToString(DBConversion.java:555) 在 oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:217) 在 oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:426) 在 oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:403) 在 oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515) 在 org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:224) 在 org.hibernate.type.StringType.get(StringType.java:18) 在 org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163) 在 org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154) 在 org.hibernate.loader.hql.QueryLoader.getResultColumnOrRow(QueryLoader.java:333) 在 org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606) 在 org.hibernate.loader.Loader.doQuery(Loader.java:701) 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 在 org.hibernate.loader.Loader.doList(Loader.java:2220) 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) 在 org.hibernate.loader.Loader.list(Loader.java:2099) 在 org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) 在 org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) 在 org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) 在 org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) 在 org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 在 org.codehaus.groovy.grails.orm.hibernate.metaclass.ExecuteQueryPersistentMethod$1.doInHibernate(ExecuteQueryPersistentMethod.java:94)

我们使用的是 oracle 驱动程序 10.2.0.3.0。

最佳答案

这是 Oracle jdbc 驱动程序的已知限制,如版本 10.2.0.1.0 的发行说明中所列。

此已知限制已根据 Oracle JDBC 驱动程序版本 11.1.0.7.0 的发行说明得到修复

关于java - 使用 Oracle 10g 长字段填充 Grails 域对象时出现空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340837/

相关文章:

java - Liferay 主题无法启用?

java - switch case 中的枚举引用

java - 如何将 Class 对象列表转换为数组?

rest - 我可以使用 ADFS 在 Grails 中为我们的 Rest Api 项目实现 SSO 吗?

java - 是否可以在 Java 中#define 一个类?

hibernate - 调用deleteallby方法时如何修复 'no entitymanager with actual transaction'?

java - HQL 中的内部连接查询

mysql - SQL 错误 : 1452, SQL 状态:23000 |无法添加或更新子行:外键约束失败

json - 用Grails渲染JSON?

mysql - 俄语字符被存储为 ????在 mysql 中,在 grails 应用程序中