我正在使用GWT 2.1.1和客戶端 - 服務器通信使用AsyncService(而不是RequestFactory)。我有一個返回「基金」對象的對象。該基金提及一個「分銷商」對象,該對象本身有一系列「基金」對象。GWT RPC序列化和循環引用 - 雞和蛋問題
在一種情況下,我從服務器返回,基金「foo」的經銷商參考有「foo」,「bar」和「joe」資金。這是一種常見的業務場景。當在客戶端反序列化時,我得到一個錯誤,因爲分銷商基金中的「foo」引用最終沒有填充值。特別是,fund-id(字符串)沒有被填充,並且在散列碼實現中被使用。在客戶端反序列化過程中,「bar」和「joe」資金得到正確的反序列化,但是foo失敗了,即只有少數屬性被反序列化。
這裏發生的事情是,當「foo」被反序列化時,它有一些反序列化的屬性,然後gwt試圖反序列化分發者。 Foo的基金資產還沒有被反序列化。因此,當分銷商的資金集合被反序列化,遇到「foo」時,反序列化器會提供對當前沒有資金ID的反序列化「foo」的引用。因此,當GWT嘗試將其添加到分發器中的Set(HashSet)時,哈希碼實現失敗。
所以我的問題是,在這種情況下,有沒有辦法強制GWT首先序列化某些屬性(在這種情況下,hashCode依賴的基金ID)?