【问题标题】:OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on [class oracle.jdbc.drive r.T4CConnection]OracleLobCreator 需要在 [oracle.jdbc.OracleConnection] 上工作,而不是在 [class oracle.jdbc.drive r.T4CConnection] 上工作
【发布时间】:2020-07-08 08:55:59
【问题描述】:

使用 spring/hibernate 将文件内容上传到 oracle 11.2 DB 时出现以下错误。 非常感谢任何帮助。

错误是:

OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on [class oracle.jdbc.drive
r.T4CConnection] - specify a corresponding NativeJdbcExtractor

我正在使用 oracle 11.2 驱动是ojdbc6.jar

休眠配置

<property
    name="fileContent"
    type="org.springframework.orm.hibernate.support.ClobStringType"
    column="FILE_CONTENT" />

堆栈跟踪如下

org.springframework.dao.DataAccessResourceFailureException: Could not create Oracle LOB; nested exception org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on [class oracle.jdbc.driver.T4CConnection] - specify a corresponding NativeJdbcExtractor
    org.springframework.dao.InvalidDataAccessApiUsageException: OracleLobCreator needs to work on [oracle.jdbc.OracleConnection], not on [class oracle.jdbc.driver.T4CConnection] - specify a corresponding NativeJdbcExtractor
            at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.getOracleConnection(OracleLobHandler.java:360)
            at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.createLob(OracleLobHandler.java:328)
            at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.setClobAsString(OracleLobHandler.java:259)
            at org.springframework.orm.hibernate.support.ClobStringType.nullSafeSetInternal(ClobStringType.java:80)
            at org.springframework.orm.hibernate.support.AbstractLobType.nullSafeSet(AbstractLobType.java:159)
            at net.sf.hibernate.type.CustomType.nullSafeSet(CustomType.java:118)
            at net.sf.hibernate.persister.EntityPersister.dehydrate(EntityPersister.java:387)
            at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:460)
            at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:436)
            at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:37)

【问题讨论】:

  • 这个参数你有什么类?
  • 嗨,它的 SimpleNativeJdbcExtractor 类。

标签: spring oracle hibernate


【解决方案1】:

【讨论】:

  • 嗨,Sayan,谢谢您的回复。我已经完成了更改,但仍然遇到相同的错误。补充一下,我使用的是 EAP 7.0
【解决方案2】:

将 hibernate xml 文件中的类型更改为“java.lang.String”后,此问题已得到修复

之前: type="org.springframework.orm.hibernate.support.ClobStringType"

之后: type="java.lang.String"

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2014-03-28
    • 1970-01-01
    • 2022-09-30
    • 2018-01-31
    • 2017-10-03
    相关资源
    最近更新 更多