Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Oracle Clob读取器问题:协议冲突_Hibernate_Clob_Ojdbc - Fatal编程技术网

Hibernate Oracle Clob读取器问题:协议冲突

Hibernate Oracle Clob读取器问题:协议冲突,hibernate,clob,ojdbc,Hibernate,Clob,Ojdbc,我正在使用java7、jboss7、ojdbc7和Hibernate4。 表有一个CLOB列,在域类中,代码如下所示: @高球 私有字符串MyClob 我在查询时遇到了这个奇怪的错误,这是不一致的 Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: IOException occurred reading text at org.hibernate.ejb.Abs

我正在使用java7、jboss7、ojdbc7和Hibernate4。 表有一个CLOB列,在域类中,代码如下所示:

@高球 私有字符串MyClob

我在查询时遇到了这个奇怪的错误,这是不一致的

Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: IOException occurred reading text
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
        at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:273)
        at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:254)
        ...
        ... 102 more
Caused by: org.hibernate.HibernateException: IOException occurred reading text
        at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:94)
        at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:280)
        at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:89)
        at org.hibernate.type.descriptor.java.StringTypeDescriptor.wrap(StringTypeDescriptor.java:39)
        at org.hibernate.type.descriptor.sql.ClobTypeDescriptor$1.doExtract(ClobTypeDescriptor.java:60)
        at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
        at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:261)
        at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257)
        at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:247)
        at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:332)
        at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2912)
        at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1672)
        at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1604)
        at org.hibernate.loader.Loader.getRow(Loader.java:1504)
        at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:712)
        at org.hibernate.loader.Loader.processResultSet(Loader.java:942)
        at org.hibernate.loader.Loader.doQuery(Loader.java:910)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
        at org.hibernate.loader.Loader.doList(Loader.java:2522)
        at org.hibernate.loader.Loader.doList(Loader.java:2508)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2338)
        at org.hibernate.loader.Loader.list(Loader.java:2333)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
        at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
        at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1269)
        at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:264)
        ... 104 more
Caused by: java.io.IOException: Protocol violation: [ 14, 47, ]
        at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:264)
        at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:195)
        at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:86)
        ... 131 more
Caused by: java.sql.SQLException: Protocol violation: [ 14, 47, ]
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
        at oracle.jdbc.driver.T4C8TTIClob.read(T4C8TTIClob.java:245)
        at oracle.jdbc.driver.T4CConnection.getChars(T4CConnection.java:3901)
        at oracle.sql.CLOB.getChars(CLOB.java:517)
        at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:245)

这是ojdbc7 jar(jdbc7版本12.1.0.1)中的一个错误。如果clob的长度为4193个字符,则驱动程序无法检索


您可以通过更新到新的OJDBC7修补程序jar(版本12.1.0.2)来修复此问题。

此错误已在OJDBC7版本12.1.0.2中修复!你有这个bug的链接吗?