Apache Ignite Spring Data扩展依赖兼容问题求助
Apache Ignite Spring Data Extension依赖兼容性问题
当前使用的依赖
- Spring Data commons 2.7.2(
org.springframework.data:spring-data-commons:2.7.2) - ignite-core 2.13.0(
org.apache.ignite:ignite-core:2.13.0) - ignite-spring 2.13.0(
org.apache.ignite:ignite-spring:2.13.0) - ignite-spring-boot-thin-client-autoconfigure-ext 2.13.0(
org.apache.ignite:ignite-spring-boot-thin-client-autoconfigure-ext:2.13.0) - ignite-indexing 2.13.0(
org.apache.ignite:ignite-indexing:2.13.0) - 尝试过的两个Spring Data扩展:
- ignite-spring-data-2.2-ext 1.0.0(
org.apache.ignite:ignite-spring-data-2.2-ext:1.0.0) - ignite-spring-data-ext 2.0.0(
org.apache.ignite:ignite-spring-data-ext:2.0.0)
- ignite-spring-data-2.2-ext 1.0.0(
问题重现
按照官方文档的版本匹配规则,选择ignite-spring-data-2.2-ext 1.0.0适配Spring Data 2.7.2时,出现Maven编译错误:
java: name clash: deleteAllById(java.lang.Iterable) in org.apache.ignite.springdata22.repository.IgniteRepository和deleteAllById(java.lang.Iterable<? extends ID>) in org.springframework.data.repository.CrudRepository存在相同擦除,但彼此不覆盖
发现有修复方法签名的新版本后,切换为ignite-spring-data-ext 2.0.0解决了编译问题,但启动应用时又出现ClassNotFoundException:
java.lang.NoClassDefFoundError: org/springframework/dao/InvalidDataAccessApiUsageException at org.apache.ignite.springdata.repository.config.IgniteRepositoriesRegistar.getExtension(IgniteRepositoriesRegistar.java:34) ~[ignite-spring-data-ext-2.0.0.jar:2.0.0] at org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport.registerBeanDefinitions(RepositoryBeanDefinitionRegistrarSupport.java:100) ~[spring-data-commons-2.7.2.jar:2.7.2] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:396) ~[spring-context-5.3.22.jar:5.3.22] at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_161] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:395) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:157) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.3.jar:2.7.3] at com.example.ignitespringdatalocal.IgniteSpringDataLocalApplication.main(IgniteSpringDataLocalApplication.java:21) [classes/:na] Caused by: java.lang.ClassNotFoundException: org.springframework.dao.InvalidDataAccessApiUsageException at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_161] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_161] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) ~[na:1.8.0_161] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_161] ... 19 common frames omitted
疑问
- 我缺少哪个Maven依赖?
- 是否有明确的版本兼容表,说明Ignite Spring Data Extension各版本对应的Spring Data支持版本?
- 恳请Ignite团队更新相关文档,当前版本匹配规则描述不够清晰,排查问题时容易陷入困惑。
内容的提问来源于stack exchange,提问作者kkoognv
相关产品推荐
相关产品推荐

