【问题标题】:How do I send an Object containing another object to the server?如何将包含另一个对象的对象发送到服务器?
【发布时间】:2011-04-14 21:19:55
【问题描述】:

我正在开发一个应用程序来收集问题(班级名称Question)和答案。

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

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

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

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

【问题讨论】:

  • 你的问题不清楚。这是您面临的问题吗? :1. 您在浏览器端使用相同的类(问题和主题)(GWT 将它们编译成 javascript),并且在服务器端,相同的类具有 Hibernate 注释(或 hibernate xml 文件) 2. 您还希望在数据库中保存问题时参考相应的主题 3. 浏览器会根据单选按钮选择填充一个新的主题对象等新的主题记录是由hibernate创建的,而不是引用旧的?

标签: hibernate gwt requestfactory


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 2015-10-13
    相关资源
    最近更新 更多