【发布时间】:2018-04-03 16:51:33
【问题描述】:
我正在尝试查询我通过 Java 脚本创建的 Apache Ignite 缓存(2.2 版):
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder=new TcpDiscoveryMulticastIpFinder();
List<String> adresses=new ArrayList<String>();
adresses.add("127.0.0.1:48500..48520");
ipFinder.setAddresses(adresses);
spi.setIpFinder(ipFinder);
IgniteConfiguration cfg=new IgniteConfiguration().setDiscoverySpi(spi).setClientMode(true);
CacheConfiguration cache_conf=new CacheConfiguration<String,Custom_Class>().setCacheMode(CacheMode.PARTITIONED).setAtomicityMode(CacheAtomicityMode.ATOMIC).setBackups(1).
setIndexedTypes(String.class,Custom_Class.class).setName("Spark_Ignite");
Ignite ignite=Ignition.getOrStart(cfg);
ignite.getOrCreateCache(cache_conf);
System.out.println("[INFO] CACHE CREATED");
ignite.close();
我正在使用 DBeaver 对该缓存执行简单的 SQL 查询。
问题是,当我尝试进行查询时,我得到了这个错误:
SELECT * FROM Custom_Class;
Table "Custom_Class" not found; SQL statement:SELECT * FROM Custom_Class
如果我运行这个查询也是一样:
SELECT * FROM Spark_Ignite;
Table "Spark_Ignite" not found; SQL statement:SELECT * FROM Spark_Ignite
但是,如果我按照此处提到的说明进行操作:https://apacheignite-sql.readme.io/docs/sql-tooling,我可以毫无问题地获得查询结果。
我跑了 ignitevisor.sh,果然所有的缓存都在那里,而且都有记录:
这里可能有什么问题?
谢谢。
更新
使用答案中提到的引号,我能够查询该表,但它没有显示任何记录,而 ignitevisor 显示 63。 这是我在课堂上使用的脚本:
public class Custom_Class implements Serializable {
@QuerySqlField(index = true)
private String a;
@QuerySqlField(index = true)
private String b;
@QuerySqlField(index = true)
private String c;
@QuerySqlField(index = true)
private String d;
@QuerySqlField(index = true)
private String e;
@QuerySqlField(index = true)
private String f;
@QuerySqlField(index = true)
private String g;
@QuerySqlField(index = true)
private String h;
}
【问题讨论】:
标签: java sql caching ignite dbeaver