我試圖實現多對一的關係。我打算將一個模型的一組鍵(數據存儲實體鍵)存儲在另一個模型的實體中,如List<String>
。在Google App Engine DataStore(Java)中存儲和搜索字符串數組
例如假設模型A的4個實體(a1,a2,a3,a4)分別具有數據存儲密鑰:key1,key2,key3和key4。現在我存儲一個模型B的實體,其名稱爲「ID」的屬性爲List<String>
。 「id」具有這些String
作爲元素:key1,key2,key3和key4。
它一切都很好,直到現在。 但是,我現在如何查詢每個這些ID的模型B?
我想要做的是這樣的:
query.setFilter(FilterOperator.EQUAL.of(ids,"key1"))
。
很明顯,這不能立即完成。 現在我正在做的是獲取每個B實體的ids屬性,然後手動反序列化成一個字符串列表,然後檢查密鑰是否存在。
正如你所看到的,這是非常低效的。我應該怎麼辦?我應該將這些映射存儲在單獨的模型中。我不想處理連接,但如果我現在的解決方案不能得到其他任何東西,我將不得不處理。
我沒有使用JPA或JDO,我打算不使用它們。
任何幫助,將不勝感激。
請參閱: http://stackoverflow.com/questions/30733825/google-datastore-multiple-values-for-the-same-property – Robert