从 GCP-Datastore 获取 LIST 的数据

Posted

技术标签:

【中文标题】从 GCP-Datastore 获取 LIST 的数据【英文标题】:Getting data from GCP-Datastore for LIST 【发布时间】:2021-10-21 18:38:03 【问题描述】:

我想从 GCP-DataStore 表中获取大量数据以获取 ID 列表。 我尝试使用以下不受支持的查询:

SELECT column1,column2,column3,column4 FROM tableName where IDs IN (:listIds)

目前,我正在迭代(在 JAVA 中)每个 Id 并使用 DataStoreRepository 获取数据。

我们如何在 GQL 中使用 IN 运算符执行查询,或者我们如何从数据存储中获取大量数据。

【问题讨论】:

【参考方案1】:

根据官方doc,GQL 确实支持IN 运算符。

我建议你试试Custom GQL query methods。这是文档中的一个示例:

public interface TraderRepository extends DatastoreRepository<Trader, String> 

  @Query("SELECT * FROM traders WHERE name = @trader_name")
  List<Trader> tradersByName(@Param("trader_name") String traderName);

  @Query("SELECT * FROM  test_entities_ci WHERE id = @id_val")
  TestEntity getOneTestEntity(@Param("id_val") long id);

【讨论】:

【参考方案2】:

ID 是实体上的字段,还是键的一部分?如果是后者,你会想要使用findAllById

【讨论】:

ID是实体的一列。

以上是关于从 GCP-Datastore 获取 LIST 的数据的主要内容,如果未能解决你的问题,请参考以下文章