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问题……
——未完待续——