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

:P在JDO查询中是什么意思

  •  3
  • Gopi  · 技术社区  · 14 年前

    所以我使用指定的“contains()”过滤器实现了它 here

    List<Key> keys = getLookupKeys(....) ..//Get keys from somewhere.
    
    Query query = pm.newQuery(Employee.class,":p.contains(key)"); //What is ":P" here?
    List<Employee> employees = (List<Employee>) q.execute(keys); //This correctly gives me all I want
    

    我只想知道这个查询中的“:P”是什么?Employee对象没有任何名为“p”的字段,我的查询也没有声明任何此类参数。那么这个“p”指的是什么?“p”有什么特别的意思吗?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Jon Skeet    14 年前

    我相信它映射了一个隐式输入参数。因为只有一个参数,所以不需要显式调用 setParameter 你还好吧

    Query query = pm.newQuery(Employee.class,":keys.contains(key)");
    List<Employee> employees = (List<Employee>) q.execute(keys); 
    

    这可能更清楚。

    请参见 Apache JDOQL docs 再举一个例子。