【问题标题】:Spring @Transactional behaviour in case of multiple update queriesSpring @Transactional 在多个更新查询的情况下的行为
【发布时间】:2016-01-29 11:38:56
【问题描述】:

我有一个应该执行多个更新的方法,并且想确保如果一个更新失败,那么没有更新被提交到数据库,代码如下所示:

    private void updateStatuses(List<Status> statuses, String docId) {
        statuses.forEach(status-> {
            Long nextVersionNumber = Long.parseLong(status.getRecordVersionNbr()) + 1;
            getJdbcTemplate().update(
                    UPDATE_FUNDS_TRANSFER_DOC_ID_SQL,
                    nextVersionNumber,
                    docId,
                    status.getStatusId());
        });
    }

我想用 org.springframework.transaction.annotation 注释这个方法。 @Transactional,这对我有用吗?我应该指定一些额外的参数吗?

【问题讨论】:

标签: java spring spring-transactions transactional


【解决方案1】:

它会像魅力一样起作用! :)

我希望你已经在 Spring 配置中配置了事务管理器。

如果你想指定传播和回滚,那么你可以这样做:

@Transactional(propagation=Propagation.REQUIRED, rollbackFor=DAOException.class)

【讨论】:

    猜你喜欢
    • 2017-09-02
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2020-10-24
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多