【问题标题】:Not able to set autocommit value to false in Oracle Data Source connection无法在 Oracle 数据源连接中将自动提交值设置为 false
【发布时间】:2016-05-25 01:50:57
【问题描述】:

通过 Spring 配置文件注入的 JdbcTemplate-OracleDataSource 在 Oracle 11g 中插入值。事务通过由 DataSourceTransactionManager 管理的 @Transactional 完成。

问题 1) 是如何通过 Spring 配置文件将 autocommit 值设置为 false。 尝试过:

    <property name="autoCommit" value="false" />

    <property name="defaultAutoCommit" value="false" />

两者都给出错误: org.springframework.beans.NotWritablePropertyException:bean 类 [oracle.jdbc.pool.OracleDataSource] 的属性“defaultAutoCommit”无效

提前致谢。

【问题讨论】:

    标签: java spring oracle


    【解决方案1】:

    这些属性将不起作用,因为 OracleDataSource 中没有 setAutoCommit()setDefaultAutoCommit() 方法。

    我们可以使用 OracleDataSource#setConnectionProperties() 来代替,它有 Properties 作为参数,我们可以通过添加属性在 OracleDataSource Spring bean 中动态定义:

    <property name="connectionProperties">
       <props merge="default">
          <prop key="AutoCommit">false</prop>
       </props>
    </property>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-30
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多