“:P”在JDO查询中的含义是什么

时间:2010-08-13 05:08:22

标签: java google-app-engine jdo jdoql

我在谷歌应用引擎上使用JDO。每个“员工”都有一个“密钥”。我有一组密钥,想要检索其密钥属于该集合的所有Employees。

所以我使用指定here的'contains()'过滤器实现了它。代码工作正常,看起来像这样 -

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 个答案:

答案 0 :(得分:5)

我相信它正在映射隐式输入参数。由于只有一个参数,您不需要显式调用setParameter,您可以使用它。我相信一直没问题:

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

可能更清楚。

另请参阅Apache JDOQL docs的“隐含参数”部分。