2012-11-26 69 views
2

Objectify框架可以更輕鬆地與Google Datastore進行交互,並且我想知道是否有可能通過ofy()。save()實體但僅在數據庫的值不是null。如何使用Objectify保存實體並保留一些值undeoutch

由於我創建了實體的新實例,並且我無法訪問其所有屬性值(數據來自POST並且缺少關係鍵之類的東西),所以我只想更改存儲/編輯接收的屬性(如SQL更新)。

我試過使用@IgnoreSave(IfNull.class),但是在保存並檢查保存的條目後,未設置爲save()時間的屬性被設置爲空,並且我與其他實體的關係鬆散。

回答

1

如果我正確理解你,你有一個已經保存的實體A.你想改變一個屬性(讓說A.b)到一些東西,但保持其他一切?你應該做的是一個ofy()。get(A),改變A.b然後保存(A)。

如果您創建一個新的實體A(來自構造函數),那麼該實體將覆蓋當前保存的實體。

+0

沒有辦法在客觀化中單獨改變一個enity(也許使用低級api調用,但我不知道)。 Objectify旨在在POJO級別工作。 – Michael

+0

不要忘記在事務中執行此操作以防止丟失更新。 – stickfigure