我無法使用Objectify可靠地獲取我的保存的實體。無法使用objectify獲取保存的實體
它看起來像緩存已損壞。奇怪的是 - 我可以通過管理控制檯數據存儲查看器正確查看保存的實體。我還編寫了一個小程序來查看使用RemoteApi的實體,我可以正確地看到保存的值。
當我查詢實體先後使用servlet或雲終端REST API - 我的連續查詢被賦予不同的結果,它看起來像在數據存儲/緩存的東西是越來越損壞。
我的實體看起來像這樣。
class ContentEntity {
@Id Long id;
String html;
@Index String tag;
boolean publish;
}
我把它保存爲這樣。
ContentEntity entity = ofy().load.type(ContentEntity.class)
.filter("tag", "my tag").first().get();
if (null == entity)
entity = new ContentEntity();
entity.html = "my html";
entity.tag = "my tag";
entity.publish = true;
ofy().save.entity(entity).now();
我這樣檢索它。
ContentEntity entity = ofy().load().type(ContentEntity.class).
filter("tag", "my tag").first().get();
會發生什麼情況如下: - 使用 「值2」
3) -
1)讓ContentEntity.html的初值爲 「值1」
2)保存新值管理控制檯數據存儲區查看器我可以看到「值2」被正確保存。 (使用遠程API也可以看到「值2」)
3)使用上面粘貼的檢索代碼通過servlet或rest api查看實體。我看到「值2」
4)通過servlet或rest api再次查看實體。我看到「值1」
5)再次查看。我看「值2」
它不斷切換「值1」和「值2」
它的所有工作在我的開發環境很好,但不是在AppEngine上之間。
看起來像我做錯了事,沒有正確處理最終的一致性。我總是希望得到一致的結果。如果我的查詢速度稍慢,我不介意。我該怎麼辦 ?
任何提示/建議/幫助將不勝感激。
問候,
沙迪亞