簡體   English   中英

在Google App Engine數據存儲區(Java)中存儲和搜索字符串數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM