当前位置: 首页 > 知识库问答 >
问题:

Spring无法创建已实现的IgniteRepository的bean

田博超
2023-03-14

我正在使用spring boot和Ignite数据库

我只创建了一个存储库,我正在Pojo中设置数据,以便使用IgniteRepository保存

下面是Ignite with Spring所需的依赖项:Ignite Version::2.0.0

        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-core</artifactId>
            <version>${ignite.version}</version>
        </dependency>

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

        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-indexing</artifactId>
            <version>${ignite.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-spring-data</artifactId>
            <version>${ignite.version}</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.195</version>
        </dependency>

这里我使用的是H2数据库依赖项,如果不使用它,我会收到另一个完全未知的错误。

点火配置:

@Configuration
@EnableIgniteRepositories(excludeFilters = {
        @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {
                TempRepository.class, GarageRepository.class, CarRepository.class,
                IncidentRepository.class, MachineRepository.class, MileageRepository.class, 
                LicenseRepository.class})
})
public class IgniteSpringConfiguration {

    @Bean
     public Ignite igniteInstance() {
      IgniteConfiguration cfg = new IgniteConfiguration();
      // Setting some custom name for the node.
      cfg.setIgniteInstanceName("eventInsights");
      // Enabling peer-class loading feature.
      cfg.setPeerClassLoadingEnabled(true);
      // Defining and creating a new cache to be used by Ignite Spring Data
      // repository.
      CacheConfiguration<Long, User> userCacheConfig = new CacheConfiguration<Long, User>("UserCacheConfig");

              // Setting SQL schema for the cache.
      userCacheConfig.setIndexedTypes(Long.class, User.class);

      cfg.setCacheConfiguration(new CacheConfiguration[] {
              userCacheConfig,

      });
      return Ignition.start(cfg);
     }
}
@RepositoryConfig(cacheName = "UserCacheConfig")
public interface UserRepository extends IgniteRepository<User, Long>{

    User findByEmail(String email);
}
private static UserRepository userRepo;

     private static AnnotationConfigApplicationContext ctx;
public static void main(String[] args) {
      ctx = new AnnotationConfigApplicationContext();
      ctx.register(IgniteSpringConfiguration.class);
      ctx.refresh();

      userRepo= ctx.getBean(UserRepository.class);
      User user=new User();
      user.setEmail("george.paul01@xyz.com");
      user.setId(1L);
      user.setPassword("password");
      userRepo.save(user);

      User getUser=userRepo.findByEmail("george.paul01@xyz.com");

      if(getUser!=null) {
          System.out.println(getUser.getEmail());
          System.out.println(getUser.getPassword());
      }
      else {
          System.out.println("User name is not found");
      }

}

用户POJO:

public class User implements Serializable
{
    private static final long serialVersionUID = 1L;

    public Long id;

    @QuerySqlField(index = true)
    private String password;

    @QuerySqlField(index = true)
    private String email;

    //getters and setters method here I am skipping in my question
}

运行后,我得到错误:

共有1个答案

裴育
2023-03-14

@repositoryconfig不声明@repository或@component。我猜它没有得到组件扫描。尝试:

@Component
@RepositoryConfig(cacheName = "UserCacheConfig")
public interface UserRepository extends IgniteRepository<User, Long>{
    User findByEmail(String email);
}
 类似资料:
  • 我正在尝试基于此示例编写自己的代码。 我使用的是Spring Boot,所有依赖项都来自https://start.spring.io/ 这是我的知识库: 我的控制器的一部分: 我的Spring Boot: 我收到此错误: 我做错了什么?如果有必要,我可以发布更多类似实体的代码 我正在使用IntelliJ IDEA。

  • 你好,我是android中MVVM的新手,正在使用livedata。我正在尝试创建viewmodel的一个实例。我觉得问题在于我没有将存储库传递给viewmodel构造函数。我一直无法创建viewmodel的实例。我不知道该怎么做这里是我的viewmodel和它的创建。

  • 我正在尝试从GitHub导入一个项目,并在Android Studio上构建/运行它。我收到以下错误: “错误:无法使用指定的Gradle分发创建工具API实现的实例”https://services.gradle.org/distributions/gradle-2.4-all.zip'." 我尝试了以下方法: 使缓存无效并重新启动 将gradle包装/属性中的分发URL更改为2.5等 删除bu

  • 我正在使用tomcat web应用程序和rest webservice,当我插入数据时,我会遇到异常! 我的类CustomerProxy:

  • 错误: 2月19日-2016 00:00:16.731SEVERE[localhost]org.apache.catalina.core.Applicationontext.logStandard ardWrapper。可投掷org.springframework.beans.factory.BeanCreationException:创建名称为“人员服务”的bean时出错:自动加载依赖项注入失败