如何将包含其他对象的对象发送到服务器?

时间:2011-04-14 11:44:05

标签: hibernate gwt requestfactory

我正在开发一个收集问题的应用程序(类名Question)和答案。

在我的客户端上有一组RadioButtons可用于选择问题的主题。主题(类名Subject)存储在数据库中。

为了存储在数据库中,我使用了hibernate。

所以我的Question类有一个属性Subject

的属性主题

保存问题时,我获取数据库ID。我现在如何将正确的主题存储到数据库中?

1 个答案:

答案 0 :(得分:1)

假设我的评论是您面临的问题,

对于您的情况,您应该有2个单独的主题和问题版本。

一组是DTO(数据传输对象),而另一组是持久的类集。 DTO类 SubjectDTO QuestionDTO 类是GWT编译的,并通过服务调用发送到浏览器或从浏览器发送。 QuestionDTO 包含输入的问题和从单选按钮中选择的主题名称作为原始字符串。当用户单击以保存问题时,您进行服务呼叫并将 QuestionDTO 发送到服务器。然后,服务器在数据库上执行主题的findByName,从数据库中获取实际预先存在的 SubjectPersistent 记录,并将其与实际字符串表示一起放入新的 QuestionPersistent 中用户输入并保存的问题。因此,您已经引用了现有主题 - 在保存问题时为主题创建了实际的外键。

为DTO和Persistant类选择你想要的任何命名方案(我将它们命名为Models and Domains)但最终它们必须分开,因为你的应用程序变得越来越复杂。