Есть классы в пакете gwt.client, дублирующие model-классы из DAO.
Как правильно, легко и непринужденно обеспечить их взаимодействие при реквесте?
Т.е. при реквесте превратить массив объектов, возвращаемых сервисными классами DAO, в массив объектов классов из gwt.client, для использования их в интерфейсе.
Как устранить (или сократить) дублирование клиентского и серверного кода?
ПС
извиняюсь за сумбур, если не понятно, постараюсь перефразировать вопрос.
1 вариант — RequestFactory. Требует интерфейсов-сателлитов.
2 вариант (этот выбираю я) — все модельные классы лежат в shared, при отдаче объектов они прогоняются через дозер. У него есть специальный конфиг для хибернейта. Для того чтобы не резолвить неинициализированные коллекции — есть специальный маппер в одну строку. Код могу дать.
Ну и не забывать про правильные паттерны — MVP в лице gwt-platform, например.
Ну тогда вам от моего кода проку будет мало наверное — там просто проверка Hibernate.isInitialized(field). Общую же концепцию можете посмотреть в моем проекте jReader (это мой аналог гуглоридера пока недописанный): github.com/asm0dey/jReader