2009-07-02 76 views
5

我遇到问题。我想创建Document对象,并且我希望拥有一个带有com.google.appengine.api.users.User类型的用户属性(在GAE的文档网站上,他们说我们应该使用此对象而不是电子邮件地址或别的东西,因为这个对象可能会被加强为唯一的)。但是现在这个对象不能被GWT编译,因为我没有这个对象的来源。 我该如何解决问题?GWT + GAE/J,通过电线发送JDO对象,但是如何?

我正在寻找关于DTOs的文档,但是我意识到也许这不是我应该使用的最佳模式。

你有什么建议?

非常感谢您的帮助!

问候, 巴林特Kriván

回答

3

,以避免DTO的对象与com.google.appengine.api.users.User里面你也许可以使用该作品从 http://www.resmarksystems.com/code/ 他打造为核心GAE数据类型的包装(重点,文本,ShortBlob中,BLOB ,链接,用户)。我用datastore.Text测试过它,它运行良好。

+0

感谢您的指导。也许这是我一直在寻找:) 顺便说一句,我仍然不确定使用或不使用DTOs;) – 2009-07-20 14:29:22

2

有很多关于你是否应该能够从客户端上的服务器重用的对象辩论。但是,重用在实际应用程序中很少能够很好地工作,所以我通常建议创建纯数据库对象,以便将数据复制到客户端。这使您可以根据客户需要量身定制数据,并避免您通过网络意外发送敏感信息的隐患。

所以在这种情况下,我会建议您创建一个单独的对象通过电线发送。顺便说一句,如果你有用于Java的AppEngine SDK(http://code.google.com/appengine/downloads.html),它包括我演示的这个演示应用程序(粘性)来演示这种技术。

+0

嗨! 感谢您的回答! 我检查了你的源代码,它看起来很有希望,但我意识到你直接使用了Datastore API。这不是太实施详细的用法吗? 也许如果我使用JDO,它会更抽象一些(如果我将我的应用程序部署在除GAE之外的其他服务上),但它让我有点困扰,我有“重复”,当然我获得了更多控制我真正发送的信息。 我会考虑的,但可能我会选择DTO。 – 2009-07-03 11:47:33

0

我有同样的问题,你的回答很有趣,但我总是很伤心复制两次数据......另外,当你的dao获取数据时,你将不得不解析所有的结果,将它们复制到纯java对象,不是吗?这似乎是一个沉重的操作。你对这些问题有何看法?

1

question也解决了这个问题: 它链接到一个半自动的解决方案,用于自动使持久对象gwt-rpc兼容。