GWT + GAE/J,如何通过网络发送JDO对象?

5
我有一个问题。我想创建Document对象,并且我想要一个用户属性,其类型为(在GAE的文档网站上,他们说我们应该使用此对象而不是电子邮件地址或其他东西,因为该对象可能会被增强为唯一)。但是现在该对象无法由GWT编译,因为我没有该对象的源代码。
如何解决这个问题?
我正在寻找关于DTO的文档,但我意识到这可能不是我应该使用的最佳模式。
你有什么建议吗?
非常感谢你的帮助!
问候,
Bálint Kriván
4个回答

3
为了避免包含com.google.appengine.api.users.User的对象使用DTOs,您可能可以使用来自http://www.resmarksystems.com/code/的工作。他已经为Core GAE数据类型(Key、Text、ShortBlob、Blob、Link、User)构建了包装器。我已经测试过它与datastore.Text一起使用效果很好。请注意保留HTML标签。

谢谢你的指导,也许这就是我一直在寻找的 :)顺便说一下,我还不确定是否要使用DTOs ;) - Bálint Kriván

2
关于是否应该在客户端重复使用服务器上的对象存在很多争议。然而,在实际应用中,重复使用很少成功,因此我通常建议创建纯Java对象,将数据复制到其中并发送到客户端。这样可以根据客户端需要调整数据,并避免意外发送敏感信息的问题。
因此,在这种情况下,我建议您创建一个单独的对象来发送。顺便说一下,如果您有Java的AppEngine SDK(http://code.google.com/appengine/downloads.html),它包括一个我做的演示应用程序(粘性笔记),演示了这种技术。

嗨!谢谢你的回答! 我已经检查了你的源代码,看起来很有前途,但是我意识到你直接使用了Datastore API。这不是太具体化的用法吗? 也许如果我使用JDO,它会抽象一些(如果我在GAE以外的其他服务上部署我的应用程序),但是它还是有点困扰我,因为我有“重复”,当然我可以更好地控制我真正发送的信息。我会考虑一下,但是可能我会选择DTOs。 - Bálint Kriván

1

这个问题也涉及到了这个问题: 它提供了一个半可行的解决方案,可以自动使您的持久化对象与gwt-rpc兼容。


0

我有同样的疑问,你的回答很有趣,但是我总是很抑郁地复制一遍数据...此外,当你的 dao 获取数据时,你将不得不解析所有结果以将它们复制到纯 java 对象中,对吧?这似乎是一个繁重的操作。你对这些问题有什么看法?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接