Как отправить Объект, содержащий другой объект, на сервер? - PullRequest
0 голосов
/ 14 апреля 2011

Я разрабатываю приложение для сбора вопросов (название класса Question) и ответов.

На моем клиенте есть набор RadioButton, которые могут использоваться для выбора предмета вопроса. Предметы (название класса Subject) хранятся в базе данных.

Для хранения в базе данных я использую hibernate.

Итак, у моего класса Вопроса есть свойство, которое имеет тип Subject

При сохранении вопроса я получаю идентификатор базы данных. Как я могу теперь сохранить соответствующую тему в базе данных?

1 Ответ

1 голос
/ 14 апреля 2011

Предполагая, что мой комментарий - это проблема, с которой вы сталкиваетесь,

Для вашего случая у вас должно быть две отдельные версии вашей темы и вопроса.

Один набор - DTO (Объект передачи данных), в то время как другой набор является постоянным набором классов.Классы DTO SubjectDTO и QuestionDTO классы скомпилированы GWT и отправляются в браузер и из него с помощью сервисных вызовов. QuestionDTO содержит введенный Вопрос и имя выбранной темы из переключателей в виде простых строк.Когда пользователь щелкает, чтобы сохранить вопрос, вы звоните в службу поддержки и отправляете QuestionDTO на сервер.Затем сервер выполняет поиск субъекта в базе данных findByName, извлекает из БД фактическую ранее существующую запись SubjectPersistent и помещает ее в новую QuestionPersistent вместе с фактической строкой, представляющей вопроспользователь вошел и сохраняет его.Таким образом, вы сослались на существующую тему - для нее при сохранении вопроса создается фактический внешний ключ.

Выберите любую схему именования для DTO и классов Persistant (я назвал их Models and Domains)но в конечном итоге они должны будут быть отдельными, так как ваше приложение становится все более сложным.

...