2

我是 GWT/GXT 的新手,我正在为我未来的应用程序寻找最佳的持久性方式。我正在考虑这样做的许多变体,所以我决定在这里画一个图表:

替代文字
所以我的结论是:
1)JPA/Hibernate 是最好的持久性框架,但它讨厌与 GWT 合作,特别是与 GXT 合作
2)JDBC 它只是一个例如笑话 :)
3) MyBatis 确实是从 db 获取数据的好工具,它快速、高效并且具有在 Hibernate 中没有的巨大可能性,但编写映射器是有史以来最糟糕的事情。
4) Dozzer 是服务器和用户资源的杀手。您必须编写大量样板代码,而它只是复制数据(有时很多)。不要不惜一切代价使用它!!!想象一下运行 100 个会话并且每个 bean 请求都必须使用 Dozzer 的服务器。
5) DTO - 类似情况。它是样板文件,它只是将一种数据类型转换为另一种数据类型。没有认真的数据处理。明智地使用服务器资源。
6)吉利德正在复制休眠豆状态。它可能很危险(只是从少数评论中听到),难以配置和与其他 IoC 框架集成(在我的例子中是 Guice)。
7)不要在客户端将POJO转化为BeanModel。JavaScript 真的很慢,它会减慢整个客户端的速度。
8)对我来说,也许对你来说的最佳实践:在图表上找到从 DB 到客户端 BaseModel bean 的最短路径。
9) MyBatis 允许将查询结果映射到 BaseModel bean(已测试),因此它们不需要多次转换,您根本不必关心它。唯一的事情是编写正确的映射。

这是我个人的意见,但我想知道你的意见。如果我错了,请解释我并给出缺点论点。我真的很想使用 Hibernate,或者您可能知道另一个 ORM 或类似于 MyBatis 框架,它可以让我直接映射到 BeanModel。

出于我的目的,我将开发应用程序,该应用程序将为我生成 BaseModel 样式的域类,其中包含映射器、验证器、编辑器、高级搜索面板、DAO、服务和 GWT-RPC 类。最好的解决方案是开发自己的脚手架:D。你怎么看待这件事?

4

4 回答 4

1

你开发自己的脚手架..这就是我所做的。这是我的流程 DB-> JPA -> Entity Beans -> 我自己的转换器类 -> BaseModel

在我的应用程序中,BaseModel 用作 DTO。在 GWT RPC 服务中,我根据需要将 BaseModel 转换为 Entity Bean 并将 Entity Bean 转换为 BaseModel。

-扎沃德

于 2011-01-21T13:16:32.930 回答
0

有没有人尝试使用休眠的动态模型,看起来你应该能够直接映射到 GXT BaseModel。请参阅:休眠动态模型部分

于 2011-11-03T00:40:50.447 回答
0

也许看看 GWT RequestFactory。这是 2.1 中的新功能

http://code.google.com/webtoolkit/doc/latest/DevGuideRequestFactory.html

我个人使用吉利德,没有任何问题,无需进行重大配置。我不会做太多的延迟加载集合。我只是带着这个想法设计了我的用例。

于 2011-01-18T05:44:12.743 回答
0

我将 MyBatis 与 GWT 一起使用,我很满意,因为 MyBatis 只使用 POJO,因此对象很容易在客户端和服务器之间传输(不再需要 DAO、DTO)。如果您不喜欢编写 XML 映射器,可以使用 MyBatis 的注解,我喜欢它的简单。所以我的推荐是MyBatis

于 2014-09-30T10:15:56.600 回答