2015-11-19 159 views
0

我有一個暴露給實體的Web服務。如何知道哪些屬性更新?

現在當有人想要更新該實體時,讓產品作爲實體和描述,他們想要藉助Web服務進行更新。 所以發送productid的第三方應用程序只是描述。所以我怎麼會知道這個特定的屬性已更新,以便我可以將此屬性設置爲pojo並將此產品插入到數據庫中。

+0

更具體。最好是發佈一些模擬代碼。 –

+0

對不起,但它更涉及到建築問題,因此... –

回答

0

只是爲了更新... 我發現做

Iterator<?> keys = JsonOject.keys(); 
    while(keys.hasNext()) { 
          String key = (String)keys.next(); 

BeanUtils.setProperty的另一種方式(對象,重點,JsonOject.getString(密鑰)); }

通過這個,你可以傳遞key作爲propertyname和value,如上所述,不需要知道哪些屬性即將到來。我們必須仔細檢查屬性是否應該正確命名。

0

您應該使用模式觀察器(wikipedia)。在Web服務和數據更新服務中實現它(例如)。

使您的Web服務可觀察並使您的數據管理器成爲觀察者。

將來,您可以添加更多的觀察者(例如對於應用程序或其他Web服務)。

0

我認爲你需要和以前的版本進行比較。例如。

你可以有一個實體的緩存,並在緩存中找到id對象,之後你需要比較每個屬性。因此您可以識別已更改的屬性。

如果您無法再比較緩存,則需要與數據存儲庫進行比較。

我覺得如果你更新所有的字段就不那麼複雜了。

+0

是的,我可以做...即使我也可以告訴第三方發送產品的屬性名稱,這是改變的方式,我不需要設置所有的財產,但有沒有更好的辦法? –

+0

我認爲這是做到這一點的最佳方式。我不建議客戶端發送更改的字段,因爲它可能發送錯誤的信息。 – reos

相關問題