首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate对象和GWT-RPC

Hibernate对象和GWT-RPC
EN

Stack Overflow用户
提问于 2013-05-25 21:18:19
回答 4查看 1K关注 0票数 2

我想用GWT-RPC将hibernate对象转移到前端。当然,我不能传输带注释的类,因为注释不能编译成javascript。所以我只在".hbm.xml“中做了hibernate映射。这对于非常简单的对象工作得很好。但是一旦我添加了更复杂的东西,比如用set实现的oneToMany关系,编译器就会抱怨set的一些序列化问题(但set中的对象也是可序列化的)。

我猜它不能工作是因为hibernate创建了一些GWT无法解释的特殊集合?

有没有办法绕过这一点,或者我需要另一种方法来将我的对象放到前端?

编辑:我的方法似乎不能用于RPC,因为hibernate更改了对象。(请参阅塔诺斯的回答)。google有一种较新的方法来将对象转移到前端:请求工厂。它看起来真的很好,我现在就试一试。

Edit2:请求工厂工作得很好,而且比RPC方便得多!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-26 07:38:47

这是从GWT文档中引用的内容。它说hibernate改变了原始形式的对象以使其持久化。

这对GWT RPC意味着,当对象准备好通过网络传输时,它实际上不是编译器认为要传输的对象,因此在尝试反序列化时,GWT RPC机制不再知道类型是什么,并拒绝反序列化它。

不幸的是,实现该解决方案的唯一方法是制作DTO及其适当的转换器。

使用Gilead是一种更干净的方法(不需要所有这些DTO代码),但是DTO更轻量级,因此通过线路产生的流量更少。

无论如何,还有推土机,它将为您生成DTO,因此您不需要太多实际编写代码。

无论哪种方式,正如mchq08所说,他提供的链接将解决许多问题。

我还会提出另一个建议!分离项目。创建一个新的模型作为应用程序的模型,并将jar包含到GWT中。这样,您的GWT项目将几乎是完整的,GUI和jar库也可以在其他项目中重用。

票数 2
EN

Stack Overflow用户

发布于 2013-05-25 22:06:00

当我将我的RPC创建为Hibernate时,我使用了这个示例作为框架。我建议下载他们的源代码并阅读“集成策略”部分,因为我觉得“基本”部分并不能证明DTO是合理的。本教程没有介绍的一件事是网页的接收和发送部分(转换为JS),这就是为什么我建议你下载他们的源代码,看看他们是如何发送/接收每个DTO的。

发布堆栈跟踪和一些您认为对解决此错误有用的代码。

Google's GWT & Hibernate

阅读这篇文章(和源代码)可能需要一些时间,但确实有助于理解它们的逻辑。

票数 2
EN

Stack Overflow用户

发布于 2013-05-25 21:25:54

我使用了下一种方法:对于每个hibernate实体类,我都有不带任何hibernate内容的客户端副本。我还有在客户端和服务器类之间复制数据的机制。这是有效的,但我相信当前的GWT版本应该可以与hibernate注释的类一起工作。

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

https://stackoverflow.com/questions/16749947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档