Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Web Toolkit (GWT) + Google App Engine (GAE) +分离数据持久性

Google Web Toolkit (GWT) + Google App Engine (GAE) +分离数据持久性
EN

Stack Overflow用户
提问于 2009-04-14 13:58:20
回答 11查看 22.5K关注 0票数 17

我想开发一个web应用程序需要使用GWT和GAE数据持久化。据我所知,我惟一(或者至少是到目前为止最方便的)数据持久化选择是GAE的数据存储,它使用JDO或JPA注释对象。我还希望能够使用GWT远程过程调用(RPC)来回发送我的对象,因此我的对象必须能够“分离”。然而,GWT RPC序列化不能处理分离的JDO/JPA对象,而且在不久的将来看起来也不会。

我的问题是:对此最简单和最直接的解决方案是什么?能够与服务器端持久化共享相同的对象客户端/服务器将非常方便。

编辑

我应该澄清的是,我仍然希望将GWT RPC与GAE的数据存储一起使用。我只是在寻找最好的解决方案,让所有这些技术一起工作。

EN

回答 11

Stack Overflow用户

发布于 2009-05-09 09:10:54

票数 7
EN

Stack Overflow用户

发布于 2009-05-14 02:02:55

雷·克伦威尔有一台temporary hack up。我试过了,它起作用了。

它强制您使用瞬态而不是可分离的实体,因为GWT不能序列化DataNucleus使用的隐藏Object[];这意味着您发送到客户端的对象不能插入回数据存储中,您必须检索实际的数据存储对象,并将所有持久字段复制回其中。Ray的方法使用反射遍历这些方法,检索getBean()和setBean()方法,并将实体setBean()与临时gwt对象的getBean()一起应用。

您应该努力使用JDO,JPA目前只是一个包装器类。要使用这种技巧,您必须对每个持久字段同时使用getter和setter方法,并对每个"bean“字段使用适当的getBean和setBean语法。好吧,这几乎是正确的,因为它假设所有的getter都以"get“开头,而默认的布尔值字段使用的是" is”。

我已经修复了这个问题,并在Ray的博客上发表了一条评论,但它正在等待批准,我不确定他是否会发表评论。基本上,我在org.datanucleus包中实现了@GetterPrefix(prefix=MethodPrefix.IS)注释来增强他的工作。

如果它没有发布,这是一个问题,请发送电子邮件给JDO Re:@GetterPrefix for x_AT_aiyx_DOT_info,我会将修复程序发送给您。

票数 5
EN

Stack Overflow用户

发布于 2010-03-07 18:57:29

我最近发现了Objectify,它被设计成JDO的替代品。使用它的经验还不多,但它比JDO更容易使用,似乎更轻量级,并声称可以通过GWT绕过对DTO的需求,尽管我还没有尝试过那个特定的特性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/749522

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档