Я использую GWT 2.1.1 и клиент-серверное соединение, используя AsyncService (не RequestFactory).У меня есть объект, который возвращает объект «фонд».У фонда есть ссылка на объект «дистрибьютор», который сам имеет коллекцию объектов «фонд».
В одном сценарии я возвращаюсь с сервера, фонд «foo», у которого ссылка дистрибьютора имеет «foo»фонды "," бар "и" джо ".Это распространенный бизнес-сценарий.При десериализации на стороне клиента я получаю сообщение об ошибке, поскольку ссылка «foo» в сборе средств у дистрибьютора заканчивается без заполнения значений.В частности, идентификатор фонда (строка) не заполняется, и это используется в реализации хэш-кода.Во время десериализации на стороне клиента средства «bar» и «joe» десериализуются должным образом, но foo не выполняется, т. Е. Десериализуется только с несколькими свойствами.
В данном случае происходит то, что когда «foo»будучи десериализованным, он имеет несколько десериализованных свойств и затем gwt пытается десериализовать дистрибьютора.Свойство Foo с идентификатором фонда еще не десериализовано.Таким образом, когда сбор средств у дистрибьютора десериализован и обнаружен «foo», десериализатор возвращает ссылку на текущий десериализованный «foo», у которого нет идентификатора фонда.Поэтому, когда GWT пытается добавить его в Set (HashSet) в распространителе, реализация хэш-кода завершается неудачей.
Поэтому мой вопрос в том, есть ли способ заставить GWT сериализовать определенные свойства (в этомcase fund-id, от которого зависит hashCode) сначала?