代码之家  ›  专栏  ›  技术社区  ›  corydoras

查询“集合”与特定字符串匹配的所有实体?

  •  1
  • corydoras  · 技术社区  · 16 年前

    如何查询使用GAE存储的对象列表,其中 Set 字段包含指定的字符串?想象一下这个假想的例子:

    @PersistenceCapable
    class Photos {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;
    
        String name = "";
        Set<String> tag = new Hashset<String>();
    }
    

    假设“数据库”中有40000张照片,我该怎么办? Query 所有照片在哪里 tag='2009'

    或者谷歌文档中的另一个例子,如果您有以下类:

    @PersistenceCapable
    public class Person {
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;
    
        @Persistent
        private Set<Key> favoriteFoods;
    
        // ...
    }
    

    如何获取所有个人对象的列表,这些对象有一个特定的最喜欢的食物键?

    2 回复  |  直到 16 年前
        1
  •  1
  •   DataNucleus    16 年前

    你如何在Java中做到这一点? collfield.contains(:字符串参数)

        2
  •  1
  •   Jay    16 年前

    尝试类似的方法,这基本上是从谷歌文档中获取的:

    Query query = pm.newQuery("select from com.example.Note where tag == tagname order by created");
    query.declareParameters("String tagname");
    return (List<Note>) query.execute(tag);
    

    根据下面的评论,这似乎也有效:

    Query query = pm.newQuery("select from com.example.Note where tags.contains(tagname) order by created");
    query.declareParameters("String tagname");
    return (List<Note>) query.execute(tag);