从 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 的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 sdkmanager --list 获取完整的包名称?

从数据库中获取List判空问题.

Java从list对象集合中获取某一列的集合数据

如何将所有对象从 Json 获取到 List

Flutter 如何使用 JSON 从 Rest API 获取 List<String> _list 数组字符串

如何在javascript中获取从Action中传送过来的一个List集合中的某一个值呢?