相关疑难解决方法(0)

使用 Spring Data MongoDB 在事务中调用两个不同 ReactiveMongoRepository 中的方法?

在 Spring Data MongoDB 中使用反应式编程模型时,可以执行如下事务:

Mono<DeleteResult> result = template.inTransaction()                                      
    .execute(action -> action.remove(query(where("id").is("step-1")), Step.class)); 
Run Code Online (Sandbox Code Playgroud)

但是 Spring Data MongoDB 也支持“reactive repositories”,例如:

public interface PersonRepository extends ReactiveMongoRepository<Person, String>

  Flux<Person> findByLocationNear(Point location, Distance distance);
}
Run Code Online (Sandbox Code Playgroud)

public interface CarRepository extends ReactiveMongoRepository<Car, String>

  Flux<Car> findByYear(int year);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,鉴于你有ReactiveMongoRepository's,你能以某种方式利用 MongoDB 事务,例如在同一个事务中插入 aPerson和吗Car(在这种情况下使用PersonRepositoryCarRepository)?如果是这样,你如何做到这一点?

java spring mongodb spring-boot spring-data-mongodb-reactive

4
推荐指数
1
解决办法
2427
查看次数