我创建了java应用程序(myLocalAPP)来连接和访问谷歌云数据存储。所以,我使用谷歌云数据存储API。然而,我现在发现我必须在GAE应用程序中使用myLocalAPP。(我将myLocalAPP导出到jar中,并将其添加到GAE/lib中)。
问题是GAE有不同的API来连接到Google数据存储,并且当我从GAE应用程序调用它们时,我在myLocalAPP中创建的连接、插入和检索方法不起作用。我得到了一个例外:
java.lang.Error: compilation problems:
The method beginTransaction(TransactionOptions) in the type DatastoreService is not applicable for the arguments (DatastoreV1.BeginTransactionRequest)
The method lookup(DatastoreV1.LookupRequest) is undefined for the type DatastoreService
Entity.Builder cannot be resolved to a type
Type mismatch: cannot convert from DatastoreV1.Entity to Entity
因此,我回到myLocalAPP并尝试更改连接方法。我从更改数据存储对象
Datastore datastore = DatastoreFactory.get().create(DatastoreHelper.getOptionsfromEnv()
.dataset(datasetId).build());
至
Datastore datastore = (Datastore )DatastoreServiceFactory.getDatastoreService();
但是铸造不起作用。我需要使用DatastoreService对象,并且必须重写其他方法。我想知道除了重写代码之外还有其他方法吗??如果我使用GAE数据存储API重写代码,那么myLocalAPP会在本地再次工作吗??(不在GAE上)。
谢谢,
用于与Google Cloud Datastore通信的客户端库当前与App Engine Datastore使用的API不兼容。
谷歌云数据存储问题跟踪器存在一个悬而未决的问题,该问题旨在增强应用程序引擎Java客户端库,使其能够在云数据存储之上工作(这也将允许使用Objectify等更高级别的库)。您可以订阅该问题以接收更新。