在 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(在这种情况下使用PersonRepository和CarRepository)?如果是这样,你如何做到这一点?
java spring mongodb spring-boot spring-data-mongodb-reactive