【问题标题】:Save, delete and update within a single transaction in Spring Data JPA在 Spring Data JPA 中的单个事务中保存、删除和更新
【发布时间】:2019-12-20 15:43:40
【问题描述】:

我有以下方法:

@Transactional
public void saveUpdateAndDelete(Entity newEntity, Entity updatedEntity, long deleteEntityId) {
  entityRepository.save(newEntity);
  entityRepository.findById(updatedEntity.getId())
    .ifPresent(e -> e.setName(updatedEntity.getName));
  entityRepository.deleteById(deleteEntityId);
}

如何确保saveUpdateAndDelete 方法中的所有语句都将在单个事务中执行?

编辑:问题的目的是解决一些实现问题,而不是关于 Spring 如何通过创建代理类来处理 @Transactional,此处对此进行了解释:Spring - @Transactional - What happens in background?

【问题讨论】:

标签: java jpa spring-data-jpa spring-data spring-transactions


【解决方案1】:

正如@JB Nizet 在他的评论中已经指出的那样,这正是@Transactional 的目的,所以这一切都将在一次交易中完成。 但请确保您从另一个 bean 调用该方法,而不是从同一类中的另一个方法调用!正如您已经指出的那样,事务性不起作用。

【讨论】:

    猜你喜欢
    • 2013-09-13
    • 2015-04-07
    • 2021-12-05
    • 2013-05-30
    • 1970-01-01
    • 2021-05-07
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多