如何过滤数据存储属性是否存在于列表中

该查询是用 JDO 编写的,我在其中根据用户所在的国家/地区过滤用户。联系人种类有财产国家。仅获取其国家/地区出现在以下列表中的用户。

List<String> countryList = Arrays.asList("USA","India","France");



SELECT FROM Contacts WHERE :countryList.contains(country) && loginType == 'Google' && dateAdded >= 0 && dateAdded <= 1567078411000 ORDER BY dateAdded DESC RANGE 0,30

如何在低级数据存储中编写上述查询的代码?


慕标琳琳
浏览 111回答 1
1回答

慕容森

尽管这不是推荐的解决方案,因为在迁移到较新的 App Engine 运行时之前需要升级到推荐的 API,但您可以使用 Java App Engine API 客户端执行此类“WHERE IN”查询。就像下面的例子一样:List<String> countryList = Arrays.asList("USA","India","France");Filter propertyFilter =        new FilterPredicate("height", FilterOperator.IN, countryList);Query q = new Query("Contacts").setFilter(propertyFilter);然而,新的Java 数据存储客户端库不支持这一点,我相信这是因为,在幕后,数据存储将此查询转换为列表中每个元素的单独查询。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java