[英]Storing and Searching an Array of Strings in Google App Engine DataStore (Java)
我正在嘗試實現多對一關系。 我計划將一個模型的鍵數組(數據存儲實體鍵)存儲在另一個模型的實體中,作為List<String>
。
例如,假設模型A的4個實體(a1,a2,a3,a4)具有數據存儲鍵:分別為key1,key2,key3和key4。 現在,我將模型B的實體存儲為List<String>
該實體具有名為“ ids”的屬性。 “ ids”具有以下String
作為元素:key1,key2,key3和key4。
到現在為止一切都很好。 但是,現在如何查詢模型B的每個ID?
我想做的是這樣的:
query.setFilter(FilterOperator.EQUAL.of(ids,"key1"))
。
顯然,這不能立即完成。 現在,我正在做的是獲取每個B實體的ids屬性,然后手動將其反序列化為字符串列表,然后檢查該鍵是否存在。
如您所見,這是非常低效的。 我應該在這里怎么走? 我是否應該將這些映射存儲在單獨的模型中。 我不想處理Joins,但是如果除了當前解決方案之外別無他法,我將不得不處理。
我沒有使用JPA或JDO,並且計划不使用它們。
任何幫助,將不勝感激。
使用EQUAL過濾器的查詢可以很好地用於值列表。 確保在執行此查詢時傳遞正確的值。
例如,如果僅在服務器端使用此實體,則可以存儲List。
如果您在客戶端需要此列表,並且始終存儲同一類型實體的密鑰,則可以存儲用於創建這些密鑰的ids
(列表)或“名稱”(列表)的列表。 這將占用更少的空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.