Hibernate 如何将包含另一个对象的对象发送到服务器?

Hibernate 如何将包含另一个对象的对象发送到服务器?,hibernate,gwt,requestfactory,Hibernate,Gwt,Requestfactory,我正在开发一个应用程序来收集问题(类名问题)和答案 在我的客户机上有一组单选按钮,可以用来选择问题的主题。主题(类名Subject)存储在数据库中 为了存储在数据库中,我使用hibernate 因此,我的问题类有一个类型为subject 保存问题时,我会获取数据库ID。现在如何将适当的主题存储到数据库中?假设我的评论是您面临的问题 就你的情况而言,你的主题和问题应该有两个不同的版本 一个集合是DTO(数据传输对象),而另一个集合是类的持久集合。 DTO类SubjectDTO和QuestionDT

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

在我的客户机上有一组单选按钮,可以用来选择问题的主题。主题(类名
Subject
)存储在数据库中

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

因此,我的问题类有一个类型为
subject


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

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

就你的情况而言,你的主题和问题应该有两个不同的版本

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


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

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