2012-11-27 41 views
0

我想知道是否有辦法在服務器上獲取實體的stableId?或者有更好的解決方案來處理我的情況?當使用@Parent時請求工廠穩定標識,@ID

在我的應用我有兩個實體A和B B的親代

A Class 

     @ID 
     Long id 

     String name 

B Class 

    @Parent A 

    @ID 
    Long id 

    String value 

我有一個消息發送給註冊客戶,並通知他們時,這些對象已經改變了廣播系統。如果我發送A並通過ID匹配,一切都會好起來的。如果我嘗試通過ID與B匹配,由於id不唯一,我會遇到問題。

B Message 
    Long id 

當客戶機接收上述乙消息,如果我嘗試比較ID字段將是對多個對象乙相同。

這種情況最好如何處理?

回答

0

具有祖先(如B)的對象有一個鍵,它是自己的ID和祖先的ID的組合。既然你沒有詳細展示你的代碼,我不能直接解決它,但我可以提出兩種處理這個問題的方法。

  1. 使用對象B的密鑰而不是其ID。他們的密鑰包括對A的引用。

  2. 由於密鑰很大,因此您可能不想使用整個密鑰。在這種情況下,您需要同時使用A的ID和B的ID來標識B.使用這兩個ID,您可以獲得B.您可以重建密鑰並通過密鑰獲取B,也可以使用指定A的祖先查詢作爲祖先。

+0

感謝您的回覆。我正在使用你的第二個建議,原因與你提到的相同。我只是不確定是否有更好的方法.... –