【问题标题】:spring-boot ConcurrencyFailureException oraclespring-boot ConcurrencyFailureException oracle
【发布时间】:2021-06-27 22:24:47
【问题描述】:

我有一个代码,当程序返回错误时,我需要更新 oracle 中的表列。但是,在更新时(catch 块内),出现以下错误:

org.springframework.dao.ConcurrencyFailureException: PreparedStatementCallback; SQL [UPDATE TB_XPTO SET COLUMN_XPTO = XX WHERE ID_XPTO = ?]; ORA-02091: transação repetida ;嵌套异常是 java.sql.SQLTransactionRollbackException: ORA-02091:

我的代码:

                 try {
                                             
                     jdbcTemplate.update ("call PROCEDURE_XPTO(?)", ID_XPTO);                

                 } catch (Exception e) {
                    jdbcTemplate.update("UPDATE TB_XPTO SET COLUMN_XPTO = XX WHERE ID_XPTO = ?", idXpto);
                     
                 }

我的数据源配置类

@Bean
public DataSourceBuilder<?> dataSourceBuilder(Environment springEnvironment) {
    DataSourceBuilder<?> dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.driverClassName("oracle.jdbc.OracleDriver");
    dataSourceBuilder.url("jdbc:oracle:thin:@//server:1521/database.com.br");
    dataSourceBuilder.username("user");
    dataSourceBuilder.password("pass");
    return dataSourceBuilder;
}

@Bean
public DataSource getDataSource(DataSourceBuilder<?> dataSourceBuilder) {
    return dataSourceBuilder.build();
}

有什么想法吗?

【问题讨论】:

标签: java oracle spring-boot spring-transactions


【解决方案1】:

感谢您的回答,但在调用过程的方法中使用 @Transactional 为我工作。

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 2019-03-17
    • 2020-10-23
    • 2020-01-20
    • 2020-12-26
    • 2020-06-27
    • 2021-04-05
    • 2018-10-19
    相关资源
    最近更新 更多