如何查询 InMemoryCache 中的所有实体?
How to query all entities from InMemoryCache?
我正在尝试从我的 apollo 本地缓存 (InMemoryCache) 中查询所有实体,但没有成功。
以下是我的处理方式。
query EntityList($limit: Int!, $offset: Int!) {
entities(
limit: $limit,
offset: $offset
) {
__typename
EntityId
}
}
使用此查询:没问题。
但是后来,我想从缓存中查询所有实体并且没有任何参数。
query LocalEntityList {
entities {
EntityId
}
}
这个简单的代码触发了一个错误
Can't find field entities on object (ROOT_QUERY)....
根据 documentation site,我了解到我需要在 InMemoryCache
对象上使用 cacheResolvers
选项。
但是没有传递 id 作为参数的例子。
我想你想要的是 @connection
指令。这将允许您在没有 limit/offset 参数的情况下缓存您的实体查询。
query EntityList($limit: Int!, $offset: Int!) {
entities (
limit: $limit,
offset: $offset
) @connection(key: "EntityList_entities") {
__typename
EntityId
}
}
使用同一连接进行连续调用应该return 来自该键的所有实体。
query LocalEntityList {
entities @connection(key: "EntityList_entities") {
EntityId
}
}
我正在尝试从我的 apollo 本地缓存 (InMemoryCache) 中查询所有实体,但没有成功。
以下是我的处理方式。
query EntityList($limit: Int!, $offset: Int!) {
entities(
limit: $limit,
offset: $offset
) {
__typename
EntityId
}
}
使用此查询:没问题。 但是后来,我想从缓存中查询所有实体并且没有任何参数。
query LocalEntityList {
entities {
EntityId
}
}
这个简单的代码触发了一个错误
Can't find field entities on object (ROOT_QUERY)....
根据 documentation site,我了解到我需要在 InMemoryCache
对象上使用 cacheResolvers
选项。
但是没有传递 id 作为参数的例子。
我想你想要的是 @connection
指令。这将允许您在没有 limit/offset 参数的情况下缓存您的实体查询。
query EntityList($limit: Int!, $offset: Int!) {
entities (
limit: $limit,
offset: $offset
) @connection(key: "EntityList_entities") {
__typename
EntityId
}
}
使用同一连接进行连续调用应该return 来自该键的所有实体。
query LocalEntityList {
entities @connection(key: "EntityList_entities") {
EntityId
}
}