spring-boot - 为什么我在使用 IgniteRepository 的 deleteAll 方法时遇到问题?

标签 spring-boot spring-data maven-3 ignite

我尝试使用 spring boot 2.1.0.RELEASE 实现 ignite 2.6.0,但是当我全新安装代码时,出现以下异常:

name clash: deleteAll(java.lang.Iterable<ID>) in org.apache.ignite.springdata.repository.IgniteRepository and deleteAll(java.lang.Iterable<? extends T>) in org.springframework.data.repository.CrudRepository have the same erasure, yet neither overrides the other

这是关于一个 Maven 项目,这里是依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-core</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-slf4j</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-spring-data</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-spring</artifactId>
        <version>2.6.0</version>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
    </dependency>
</dependencies>

点燃配置类

@Configuration
@EnableIgniteRepositories
public class IgniteConfig {
@Bean
public Ignite igniteInstance() {
  IgniteConfiguration config = new IgniteConfiguration();

  CacheConfiguration<String, MyEntity> cacheMyEntity = new CacheConfiguration<>("MyEntityCach");
  cacheMyEntity.setIndexedTypes(String.class, MyEntity.class);

  CacheConfiguration[] cacheConfiguration= new CacheConfiguration[] {cacheMyEntity};
  config.setCacheConfiguration(cacheConfiguration);
  return Ignition.start(config);
}
}

存储库

@RepositoryConfig(cacheName = "MyEntityCach")
public interface EntityRepository extends IgniteRepository<MyEntity, String>{}

实体

@Getter
@Setter
@Builder
public class MyEntity implements Serializable{

@QuerySqlField(index = true)
private String id;

@QuerySqlField()
private String label;

@QuerySqlField()
private Long number;

@QuerySqlField(index = true)
private Long idParent
}

好吧,我不使用任何方法来删除,所以为什么它给了我这个异常(exception)!这是版本的冲突吗? 你有什么想法吗?

最佳答案

你需要使用 ignite-spring-data_2.0 而不是 ignite-spring-data:

    <dependency>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-spring-data_2.0</artifactId>
        <version>${ignite.version}</version>
    </dependency>

这适用于 spring-boot 2.1.6.RELEASE 和 ignite 2.7.5

关于spring-boot - 为什么我在使用 IgniteRepository 的 deleteAll 方法时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197019/

相关文章:

java - 如果我没有标记为 @EnableJms 注释的类,spring 如何查找 @EnableJms 方法?

spring-boot - 如何使用 Gradle 更改 Spring Boot 应用程序的端口?

java - 如何修改 pom.xml 以便 Maven 3.0.4 不认为我正在运行 SDK 1.3

maven - 如何使用 Maven 3 mixins?

java - 如何使用maven更改tomcat服务器的端口号

java - JAR 中的 Spring Boot ClassPathResource

MongoDB - @DBRef - 有没有办法控制非规范化属性?

spring - 通过向表添加行在 thymeleaf 中创建动态列表对象

java - spring数据选top 100

maven - 一次使用不同的分类器构建多个 Artifact