Spring 多个更新查询时的@Transactional 行为
Spring @Transactional behaviour in case of multiple update queries
我有一个应该执行多个更新的方法,并且想确保如果一个更新失败则没有更新提交到数据库,代码如下:
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,这对我有用吗?我应该指定一些额外的参数吗?
它会非常有效! :)
我希望您已经在 Spring 配置中配置了事务管理器。
如果你想指定传播和回滚那么你可以这样做:
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=DAOException.class)
我有一个应该执行多个更新的方法,并且想确保如果一个更新失败则没有更新提交到数据库,代码如下:
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,这对我有用吗?我应该指定一些额外的参数吗?
它会非常有效! :)
我希望您已经在 Spring 配置中配置了事务管理器。
如果你想指定传播和回滚那么你可以这样做:
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=DAOException.class)