Нулевой указатель при заполнении объекта домена Grails полем Oracle 10g - PullRequest
0 голосов
/ 04 декабря 2008

Мы пытаемся заполнить объект домена из базы данных Oracle 10g. Данное поле определяется как строка в доменном объекте со следующими ограничениями.

zdata (пустая ложь, MaxSize: 3000000)

Размер данных составляет приблизительно 70 КБ XML.

Определение таблицы выглядит так:

ZDATA NOT NULL LONG ()

Мы используем получатель grails для доступа к таблице:

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)

мы используем драйвер оракула 10.2.0.3.0.

Ответы [ 3 ]

1 голос
/ 05 декабря 2008

Это известное ограничение драйвера oracle jdbc, указанное в примечаниях к выпуску для версии 10.2.0.1.0.

Это известное ограничение было исправлено в соответствии с примечаниями к выпуску драйвера JDBC Oracle версии 11.1.0.7.0

0 голосов
/ 08 февраля 2009

Если вы храните XML в Oracle, используйте столбец XmlType, который можно легко преобразовать в CLOB и прекрасно работает с драйвером JDBC 10g, поскольку именно это мы сейчас используем в нашей производственной среде.

0 голосов
/ 05 декабря 2008

Почему вы используете длинное поле в Oracle? Лонг очень устарел, вы должны использовать удар.

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