是否可以在java appengine应用程序中使用GQL?
我已经在各种包中看到了几个对GqlQuery对象的引用,但是我没有看到如何在AppEngine应用程序中使用它。
有可能吗?我应该使用什么maven包呢?如果它可用,它是稳定的 - 或 - 预发布?
谢谢,Chad
答案 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());
}