在我的@SpringBootTest
中,似乎不可能在ReactiveMongoDatabase中创建集合,但这应该很容易。有帮助吗?
bean是(我想如果我想使用反应式,这是我应该使用的bean?)
@Bean
Mono<MongoDatabase> reactiveMongoDatabase() {
// recommended way in ReactiveMongoTransactionManager javadoc
log.info("Creating reactiveMongoDatabase...");
return ReactiveMongoDatabaseUtils.getDatabase(properties.getDatabase(), reactiveMongoDatabaseFactory());
}
在集成测试中,我尝试创建如下集合:
@Autowired
private ReactiveMongoTemplate template;
@BeforeEach
private void createColletion() {
//mongoDatabase.createCollection("Coupon");
template.createCollection(Coupon.class);
}
但是我仍然收到错误:
[ENV=itest] [productName=promotion-facts-sync] [2020-03-19T14:26:09.801Z] [ERROR] [MSG=[Thread-20] e.v.c.p.f.service.SyncProcessService - Error while processing empty message. Cause: Cannot create namespace promotion-facts-sync.Coupon in multi-document transaction.; nested exception is com.mongodb.MongoWriteException: Cannot create namespace promotion-facts-sync.Coupon in multi-document transaction. ][TRACE=] [SPAN=]
该怎么做?
答案 0 :(得分:1)
现在,作为一种解决方法,在插入之前,我使用document.getElementById("content").innerHTML = html;
进行迁移。它不支持ReactiveMongoDatabase,但是至少它可以创建集合。
具有更好解决方案的任何人都可以发布它,谢谢。