使用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.
但是,对于自动重新加载实体以从数据库中获取生成的数据,并没有任何特殊的支持。