Выбор между SimpleBeanEditorDriver или RequestFactoryEditorDriver в контексте передачи полного графа объекта - PullRequest
1 голос
/ 27 февраля 2012

Я новичок в RequestFactory, поэтому, пожалуйста, исправьте меня, если я где-то ошибаюсь.

Я написал пример проекта, который использует RequestFactory с Objectify на стороне сервера.

Я использовал SimpleBeanEditorDriver на стороне клиента, но затем я запутался с проблемой работы с полным графиком моего объекта.Я отправил другой вопрос , в котором есть фрагменты моего кода с сущностями.

После некоторых экспериментов я обнаружил следующее:

  • SimpleBeanEditorDriver требует with() для получения полного графикаобъекта, но, к удивлению, он не нужен, когда я отправляю объект с клиента на сервер.
  • RequestFactory требует, чтобы я использовал with() в обоих случаях, но имеет удобный метод getPaths(), поэтому я ненужно что-нибудь жестко закодировать в моем коде.Имена полей имеют тенденцию меняться:)

Есть ли способ использовать SimpleBeanEditorDriver без жесткого кодирования имен всего графа?Он может автоматически отправлять весь график на сервер, но почему бы не сделать то же самое при получении его с сервера?

1 Ответ

1 голос
/ 27 февраля 2012

Есть ли способ использовать SimpleBeanEditorDriver без жесткого кодирования имен всего графа?

Нет, если вы не реплицируете функциональность RequestFactoryEditorDriver getPaths() (что можно сделать с помощьюEditorVisitor, это именно то, что RequestFactoryEditorDriver делает под капотом)

Он может автоматически отправлять весь график на сервер, но почему бы не сделать то же самое при получении его с сервера?

Фабрика запросов и структура редактора не знают друг друга.RequestFactoryEditorDriver знает фабрику запросов (автоматически edit() прокси, предоставляет удобный getPaths(), и исторически был единственным, кто предоставил setErrors до того, как setConstraintViolations был преобразован в базовую EditorDriver), ноФабрика запросов не знает структуры редактора.
Таким образом, нельзя сказать, что один может отправить […] на сервер , или что одному драйверу «требуется with() для полной загрузкиgraph », а для других « требуется with() в обоих случаях »: фабрике запросов требуется with() для извлечения отношений прокси-сервера, и with() не участвует в отправке на сервер(только то, что найдено);и это никак не связано с каркасом редактора.

...