Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ignite 使用自定义缓存模板时,无法通过关联键查询缓存_Ignite - Fatal编程技术网

Ignite 使用自定义缓存模板时,无法通过关联键查询缓存

Ignite 使用自定义缓存模板时,无法通过关联键查询缓存,ignite,Ignite,我注意到,当我查询使用自定义缓存模板创建的缓存并在WHERE子句中包含该缓存的关联键时,不会返回任何结果 我正在使用以下配置运行Ignite 2.5: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.o

我注意到,当我查询使用自定义缓存模板创建的缓存并在WHERE子句中包含该缓存的关联键时,不会返回任何结果

我正在使用以下配置运行Ignite 2.5:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
  <property name="cacheConfiguration"> 
    <list> 
      <bean id="cache-template-bean" abstract="true" class="org.apache.ignite.configuration.CacheConfiguration"> 
          <property name="name" value="myCacheTemplate*"/> 
          <property name="cacheMode" value="PARTITIONED" /> 
      </bean> 
    </list> 
  </property> 
</bean>

我想知道这是我的一个错误配置,还是Ignite中的一个bug

显然,这是Ignite中的一个bug。提出。谢谢你的报道

只有通过
和keepbinary()放置数据时才会出现此问题。如果改用SQL
INSERT
SELECT
可以正常工作

我建议您使用
INSERT
而不是手动构建
BinaryObject
s,这样更容易解决问题。如果您必须使用
BinaryObject
s,那么您可以尝试通过
INSERT
添加第一行,然后使用binary,这在我的测试中也起到了作用

...Ignite startup logs...
[10:28:05] Ignite node started OK (id=7393583b)
[10:28:05] Topology snapshot [ver=8, servers=1, clients=1, CPUs=8, offheap=3.2GB, heap=8.1GB]
[10:28:05]   ^-- Node [id=7393583B-90FB-4D04-8D51-595F7C4DD4B6, clusterState=ACTIVE]
CREATE TABLE IF NOT EXISTS root (
  "key" VARCHAR(24) NOT NULL,
  "data" VARCHAR(100),
  PRIMARY KEY("key"))
WITH "template=PARTITIONED, affinity_key=key, cache_name=root, value_type=root";

CREATE TABLE IF NOT EXISTS colocated_default (
  "root_key" VARCHAR(24) NOT NULL,
  "key" VARCHAR(24) NOT NULL,
  "data" VARCHAR(100),
  PRIMARY KEY("root_key", "key"))
WITH "template=PARTITIONED, affinity_key=root_key, cache_name=colocated_default, key_type=colocated_default_key, value_type=colocated_default";

CREATE TABLE IF NOT EXISTS colocated_custom (
  "root_key" VARCHAR(24) NOT NULL,
  "key" VARCHAR(24) NOT NULL,
  "data" VARCHAR(100),
  PRIMARY KEY("root_key", "key"))
WITH "template=myCacheTemplate, affinity_key=root_key, cache_name=colocated_custom, key_type=colocated_custom_key, value_type=colocated_custom";

Inserting into "root": ["1", root [idHash=362827515, hash=1928708473, data=Data for 1, key=1]]
Inserting into "colocated_default": [colocated_default_key [idHash=44559647, hash=-132016556, root_key=1, key=2], colocated_default [idHash=1067599825, hash=-132016556, root_key=1, key=2]]
Inserting into "colocated_custom": [colocated_custom_key [idHash=1336001042, hash=-132016555, root_key=1, key=3], colocated_custom [idHash=1856158867, hash=-132016555, root_key=1, key=3]]

SELECT COUNT(*) FROM root;
1

SELECT COUNT(*) FROM colocated_default;
1

SELECT COUNT(*) FROM colocated_custom;
1

SELECT COUNT(*) FROM root WHERE "key" = '1';
1

SELECT COUNT(*) FROM colocated_default WHERE "root_key" = '1';
1

SELECT COUNT(*) FROM colocated_custom WHERE "root_key" = '1';
0