从 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 获取完整的包名称?