SpringBoot-MongoDB 索引冲突分析及解决

https://blog.csdn.net/devcloud/article/details/100119386 

按这个方法发现解决不了问题……

1. mapping-converter bean生成的时候 就已经在 spring里注册了 MongoPersistentEntityIndexCreator的监听了。

2. 单纯声明 customIndexCreator 不能接管 事件,而是会两个监听都执行。

————————9月20日更新————————

1. bean的问题 好解决,只要beanName设置为 [indexCreationHelper] 那么在 MongoTemplate的prepareIndexCreator中获取的indexCreator就只有1个了

*要注意 customIndexCreator 必须继承 MongoPersistentEntityIndexCreator

2. 但另一个问题 MongoPersistentEntityIndexCreator 在构造函数中,即调用了  checkForIndexes(entity);  而 checkForIndexes 正是报错的关键

3. 因此 出现了两个问题 : A. custonIndexCreator 不能调用 MongoPersistentEntityIndexCreator 的构造 ;B. MongoTemplate的构造函数中 new了 MongoPersistentEntityIndexCreator 

4. A问题的解决 可以靠,自身保存真正的 context,然后 new一个 MongoMappingContext 给父类的构造函数 来解决

5. B问题……

——未完待续——

posted @ 2019-09-19 19:16  卡拉迦迪斯  阅读(523)  评论(0编辑  收藏  举报