是否可以从java appengine应用程序中使用GQL?

时间:2016-03-17 20:40:28

标签: google-app-engine google-cloud-datastore

是否可以在java appengine应用程序中使用GQL?

我已经在各种包中看到了几个对GqlQuery对象的引用,但是我没有看到如何在AppEngine应用程序中使用它。

有可能吗?我应该使用什么maven包呢?如果它可用,它是稳定的 - 或 - 预发布?

谢谢,Chad

1 个答案:

答案 0 :(得分:1)

我认为这是可能的。我做了一些谷歌搜索,我在这里注意到我发现了什么。

免责声明:我没有测试过这个,我和Andrei一样,强烈建议使用Objectify。

您可以从API获取数据存储区实例。来自https://cloud.google.com/datastore/docs/datastore-api-tutorial

// Create an authorized Datastore service using Application Default Credentials.
private final Datastore datastore = DatastoreOptions.defaultInstance().service();

您至少需要以下Maven包。就像它说的那样是在Beta中。

<dependency>
    <groupId>com.google.apis</groupId>
    <artifactId>google-api-services-datastore-protobuf</artifactId>
    <version>v1beta2-rev1-4.0.0</version>
</dependency>

然后你可以这样做一个GQL查询。 来自https://cloud.google.com/datastore/docs/concepts/gql

// import static com.google.api.services.datastore.client.DatastoreHelper.*;

GqlQuery.Builder query = GqlQuery.newBuilder().setQueryString("SELECT * FROM Person");
RunQueryRequest request = RunQueryRequest.newBuilder().setGqlQuery(query).build();

RunQueryResponse response = datastore.runQuery(request);
List<Entity> results = new ArrayList<Entity>();
for (EntityResult entityResult : response.getBatch().getEntityResultList()) {
  results.add(entityResult.getEntity());
}