【问题标题】:Does ignite auto-generates sql tables in cache?ignite 会在缓存中自动生成 sql 表吗?
【发布时间】:2021-07-01 03:24:17
【问题描述】:

我是 ignite 新手,我创建了一个基本的 Spring Boot 应用程序。我在终端中将 ignite 作为服务器节点运行,并在我的 Spring Boot 应用程序中配置了客户端节点。我创建了一个实体和缓存。在终端中使用 sqlline 工具时,我在缓存中找不到我的 sql 表。 ignite 是否在缓存中使用 pojo 类中指定的字段自动生成 sql 表?

Employee.java


import java.io.Serializable;

@Data
public class Employee implements Serializable {

    private static final long serialVersionUID = -2974414641088735500L;

    @QuerySqlField(index = true)
    public Long id;

    @QuerySqlField
    public String username;

    @QuerySqlField
    public String firstName;

    @QuerySqlField
    public String lastName;

    @QuerySqlField
    public String department;

    public String test;
}

点燃配置:

@Configuration
public class ApacheIgniteConfiguration {
    @Bean
    public Ignite igniteInstance() {
        IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
        igniteConfiguration.setIgniteInstanceName("igniteTest");
        igniteConfiguration.setLocalHost("127.0.0.1");
        igniteConfiguration.setClientMode(true);

        CacheConfiguration cacheConfiguration = new CacheConfiguration();
        cacheConfiguration.setCacheMode(CacheMode.REPLICATED);
        cacheConfiguration.setName("employee");
        cacheConfiguration.setStatisticsEnabled(true);
        cacheConfiguration.setIndexedTypes(Long.class,Employee.class);

        CacheConfiguration cacheConfiguration1 = new CacheConfiguration();
        cacheConfiguration1.setCacheMode(CacheMode.REPLICATED);
        cacheConfiguration1.setName("itemCache");
        cacheConfiguration1.setStatisticsEnabled(true);
        cacheConfiguration1.setIndexedTypes(String.class,Item.class);

        igniteConfiguration.setCacheConfiguration(cacheConfiguration1);

        return Ignition.start(igniteConfiguration);
    }
}

【问题讨论】:

  • 您能分享您的服务器配置吗?这是给客户的。
  • @VladimirPligin 我正在使用 {ignite-home}/examples/config/ignite-example.xml 中存在的默认服务器配置

标签: java spring-boot caching ignite


【解决方案1】:

setIndexedTypes 表示将创建该表。在sqlline 中尝试!tables 命令。在您的情况下,表可能被命名为 "employee".EMPLOYEE"itemCache".ITEM

【讨论】:

  • 表正在创建,我无法使用 sqlline 执行 sql 查询。我可以在 Spring Boot 中使用 @query 注解查询表。
  • 尝试在 sqlline 中运行 !tables。你看到什么了吗?
  • 我可以看到表格,但无法查询。它显示不存在带有“table_name”的表。
  • 你需要为这个表指定schema,比如SELECT * FROM "employee".EMPLOYEE LIMIT 1
猜你喜欢
  • 2013-05-27
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多