使用DatastoreService查询字符串

时间:2012-11-13 01:50:43

标签: java google-app-engine

使用DatastoreService如何对包含类似于Java String的字符串的String进行查询:

  • 包含
  • startsWith
  • 的endsWith

2 个答案:

答案 0 :(得分:2)

查询String属性时,完全匹配是最简单的,因为该行为“开箱即用”。

“startsWith”查询可以通过将property startsWith: abc转换为property >= 'abc' and property < 'abd'来轻松完成,您可以在其中计算范围的结束。

“endsWith”可以通过存储字符串的反转副本,并如上所述创建查询,但目标被反转来完成。即,property endsWith: 'abc'变为`propertyReversed&gt; ='cba'和propertyReversed&lt; 'CBB'。

“包含”是一个很大的挑战。有几种方法,适合您情况的方法取决于您的情况。如果字符串相对较短(例如,地址名称),则可以存储尾随子字符串列表,并使用上述范围查询与它们进行匹配。

答案 1 :(得分:0)

正如戴夫在回答中提到的那样,contains不能用作数据存储原语。如果您正在寻找遏制查询,Search API是一个值得关注的好地方(请注意:它仍在实验中)。