GWT和Hibernate

时间:2011-05-11 21:14:02

标签: hibernate gwt

您认为仅使用GWT和Hibernate听起来像是一个需要非常丰富UI的Web应用程序的“理智”解决方案吗?

7 个答案:

答案 0 :(得分:3)

GWT和Hibernate并不是天生的匹配。有关您为何以及如何同时使用这两者的完整信息,请阅读http://code.google.com/intl/es-ES/webtoolkit/articles/using_gwt_with_hibernate.html

但总结一下,你将有3个选择:

  • 使用普通数据传输对象(DTO)。
  • 使用推土机。使用Dozer,您仍在使用DTO,但Dozer将为您完成大部分工作。
  • 使用Gilead在GWT端和服务器端之间进行“神奇”转换。

根据我的经验,“神奇”的解决方案在工作时非常棒。当他们没有,好吧,祝你好运。所以如果我在你的鞋子里,我会选择1或2选项。

答案 1 :(得分:2)

简而言之,是的。

您似乎有2个要求:

丰富的用户界面 您可能知道,GWT可用于制作Rich UI应用程序。可能性几乎无穷无尽。 Hibernate在第1点没有任何作用。

<强>可扩展性, 数据模型确实存在很大的开销,因为每个Hibernate实体在将它们发送到客户端时都必须使用GWT模型进行映射。正如用户在上面指定的那样,有第三方应用程序可以帮助您这样做。添加新数据模型将触发对服务器和客户端代码的更改。但是,如果你的架构很强大,这应该不是一个大问题。

答案 2 :(得分:1)

是的,它被大量使用了。基本上你有两个选择:

  • 使用DTO并始终在服务器上初始化您的hibernate实体
  • 使用gilead

答案 3 :(得分:1)

我认为在GWT 2.1+中解决的更好的解决方案是使用RequestFactory和Entity / ValueProxy机制。有关GWT中这个习语的更详细的理解,请参阅此http://code.google.com/webtoolkit/doc/trunk/DevGuideRequestFactory.html

答案 4 :(得分:1)

是一个非常好的架构,但你需要这个才能完美匹配。

http://beanlib.sourceforge.net/

  //To response RPC with just the current entity
  return new Hibernate3DtoCopier().hibernate2dto(entity); 

  //To response RPC with the entity with their related entities. 
  return new Hibernate3DtoCopier().hibernate2dtoFully(entity); 

答案 5 :(得分:0)

Gilead在考虑GWT应用程序时发挥最大的作用。在将GWT应用程序设计为3层体系结构时,首先要考虑的是Web层是gwt生成的JavaScript UI,应用程序层是您的RPC服务,但事实并非如此。它们都属于Web层。在考虑Web层时,通常会对必须显示的数据进行数据转换。但是当使用Gilead并且你没有机会这样做时,这不会发生。因此,我总是建议使用像Dozer这样的数据映射器,当您将当前所有数据从数据库传输到UI时也是如此。当您的应用程序增长时,您需要转换的时间到了!

答案 6 :(得分:0)

当然是。

我制作了一个教程,帮助人们了解如何集成libs。检查一下:

http://singularityprogramming.wordpress.com/2012/04/06/gwt-2-4-0-hibernate-3-6-10-final/