首先,
非常感谢克雷格在下面的优秀答案,我发现在搜索原始问题时非常有用...... 参考:GWT Simple RPC use case problem : Code included在此解决方案的基础上,如何将我的可持久对象留在 / shared 文件夹中,克劳格建议......以及注释它作为GWT教程建议...
@PersistenceCapable
public class Employee {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
GWT似乎无法在客户端处理/导入com.google.appengine.datastore.key?
我见过一些丑陋的黑客......但没有什么优雅的。
欢迎任何建议, 感谢
答案 0 :(得分:3)
不幸的是,App Engine的Key
类(和其他类)不 GWT兼容。这意味着您必须从数据存储中检索对象,然后将其转换为与GWT兼容的POJO,以通过GWT-RPC发送到客户端。
我建议使用App Engine的objectify框架。它不仅是一个更简单的数据存储区接口,而且它使用的持久对象与 GWT兼容,因此您可以通过GWT-RPC将它们发送给您的客户端。
答案 1 :(得分:2)
您可以通过添加这些额外的jar文件来使用GWT代码中的Key类:
http://www.resmarksystems.com/code/
这基本上为GWT编译器提供了一个GWT友好版本的Key和其他AppEngine类。 (如Text,Blob和User ..)
使用:
在您的GWT模块中添加以下内容:
<inherits name="com.resmarksystems.AppEngineDataTypes"/>
答案 2 :(得分:0)
如果您不需要Key对象,那么您的密钥可以是Long或String,它们很容易序列化,因此可以使用标准的GWT-RPC。
答案 3 :(得分:0)
我认为Google刚刚发布了一个名为requestfactory的GWT库,用于此用例。 This is the link