有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

事务中的java保存(列表)与保存(实体)第二部分

问题是CrudRepository and Hibernate: save(List<S>) vs save(Entity) in transaction的后续问题

如果我没有用@Transactional标记以下内容。如果数据库连接中断或Spring Data JPA正在保存列表时发生了什么情况。该列表将被回滚,还是只是部分保存

@Transactional
public void processData() {
   List<MyEntity> entities = ....;
   MyEntityRepository.save(entities);
}

共 (1) 个答案

  1. # 1 楼答案

    这在很大程度上取决于MyEntityRepository的实现

    例如,如果它是由spring作为SimpleParepository生成的,那么它将被回滚。因为如链接问题所示,save()方法也用@Transactional注释:

    @Transactional
    public <S extends T> List<S> save(Iterable<S> entities) {}
    

    但对于每一个其他的实现?我要说的是,这种行为是没有定义的