ReactiveMongoRepository插入返回转换器



使用ReactiveMongoRepository:插入具有Instant值的实体

MyEntity inserted = myReactiveMongoRepository.insert(entity).block();
System.out.println("inserted.getSent() = " + inserted.getSent());
// inserted.getSent() = 2022-09-17T00:20:58.399300383Z

插入后重新加载实体:

MyEntity loaded = myReactiveMongoRepository.findById(inserted.getId()).block();
System.out.println("loaded.getSent() = " + loaded.getSent());
// loaded.getSent() = 2022-09-17T00:20:58.399Z

在Mongo中,即时值被修剪为毫秒精度,这很好。尽管如此,上面的插入返回一个包含原始值的对象。

如何立即返回转换后的即时插入

您可以将调用链接起来。

MyEntity insertedAndReloaded = myReactiveMongoRepository.insert(entity)
.flatMap(inserted -> myReactiveMongoRepository.findById(inserted.getId())
.block(); // don't block in production.

但是,对于自动重新加载实体以从数据库中获取生成的数据,并没有任何特殊的支持。

最新更新