Java GWT编辑器和GAE数据存储

Java GWT编辑器和GAE数据存储,java,google-app-engine,gwt,google-cloud-datastore,jdo,Java,Google App Engine,Gwt,Google Cloud Datastore,Jdo,GWT有一个简单的接口,粗略检查后,它看起来非常像SpringMVC/Forms处理后端数据对象和前端UI组件之间的数据绑定的方式 我正在编写我的第一个GWT/GAE应用程序,我想知道是否有任何方法可以将此编辑器框架与GAE的JDO/Atomic库结合使用,该库是针对应用程序和底层数据存储之间的O/R映射编写代码的API 这两个框架是互补的还是相互排斥的?如果它们可以一起工作,请有人提供一个小的代码示例,说明我如何使用它们来填充,例如,一个包含名称列表的HTML框,或者其他一些基本但实用的东西

GWT有一个简单的接口,粗略检查后,它看起来非常像SpringMVC/Forms处理后端数据对象和前端UI组件之间的数据绑定的方式

我正在编写我的第一个GWT/GAE应用程序,我想知道是否有任何方法可以将此编辑器框架与GAE的JDO/Atomic库结合使用,该库是针对应用程序和底层数据存储之间的O/R映射编写代码的API

这两个框架是互补的还是相互排斥的?如果它们可以一起工作,请有人提供一个小的代码示例,说明我如何使用它们来填充,例如,一个包含名称列表的HTML
框,或者其他一些基本但实用的东西

我想这可能涉及一个表示一个人的
Person
POJO(并具有
String name
属性),可能是某种
PersonDAO
,它使用JDO/Atomic来CRUD
Person
实例来访问数据存储,然后是某种
编辑器
,它可以将
个人
实例映射到前端
s


如果我能看到一个有效的例子,我想这一切对我来说都会好起来的。而且,如果这些都是相互排斥的,不能一起使用,一个坚实的解释为什么会非常感谢!提前谢谢

我希望这会有所帮助,这是一些将数据存储在GAE数据存储中的示例代码,这是一个获取数据并用内容填充GWT下拉列表的简单查询

以下是一个持久化到app engine数据存储的JDO ORM:

下面是查询数据存储以获取对象列表的示例

@Override
    public List<Entity> getEntityByName(final User user, final String name) 
{
        final PersistenceManager pm = pmf.getPersistenceManager();

        try {
            final Query q1 = pm.newQuery(EntityStore.Class);
            final List<Entity> c;

                q1.setFilter("name==b");
                q1.declareParameters("String b");
                q1.setRange(0, 1);
                c = (List<Entity>) q1.execute(name);

            if (c.isEmpty()) {
                return Collections.emptyList();
            } else {

                final Entity result = c.get(0);
                return createModel(user, result);

            }

        } finally {
            pm.close();
        }
    }
@覆盖
公共列表getEntityByName(最终用户,最终字符串名)
{
最终PersistenceManager pm=pmf.getPersistenceManager();
试一试{
最终查询q1=pm.newQuery(EntityStore.Class);
最后名单c;
q1.设置过滤器(“名称==b”);
q1.申报参数(“字符串b”);
q1.设定范围(0,1);
c=(列表)q1.execute(名称);
if(c.isEmpty()){
返回集合。emptyList();
}否则{
最终实体结果=c.get(0);
返回createModel(用户、结果);
}
}最后{
pm.close();
}
}
下面是一个基于GWT(GXT)的组合框,其中填充了从ORM模型创建的POJO


在IE6和HTML4时代,没有办法编写像GMail一样酷的web应用程序。这就是为什么引入了GWT并实现了目标:GMail能够在任何浏览器中工作

在我们的时代,GWT似乎失去了领导力。jQuery变得越来越流行,因为它使用硬件加速,工作速度更快。。。然而,现在忘记GWT还为时过早

如果您想使用编辑器框架和JDO,那么我们必须强调它们之间存在一个瓶颈:GWT RPC。RPC每次都会序列化和反序列化POJO,而定制这种序列化/反序列化的方法非常有限

GWT RPC的这个缺点迫使大多数开发人员维护两个相同的POJO层次结构:一个用于JDO/Hibernate,另一个用于GWT。通常情况下,老板会批准这个解决方案,因为它比黑客破解每个RPC调用来让它工作起来更快更容易。在我见过的大多数现实世界项目中,有两种层次结构

另一方面,jQuery根本不需要定义任何POJO。显然,这是发展速度不同的一个原因


很抱歉,我没有提供任何答案。我希望我的想法将是有用的,即使它只是说,你在死胡同。我已经见过好几次非常有经验的架构师决定使用GWT,也走到了这条死胡同。现在,他们为这个错误付出了代价,花时间和金钱编写了两个完全相同的POJO层次结构。

您没有提到Objectify,但这篇关于将其与编辑器框架集成的博文非常棒:啊,看来Objectify是JDO/Atomic的包装器?有点像Hibernate包装JDBC的方式?谢谢@ben_w!Objectify与JDO无关,它是JDO的替代品。不知道你指的“原子”是什么。