编程语言
首页 > 编程语言> > java-JDO查询中“:P”是什么意思

java-JDO查询中“:P”是什么意思

作者:互联网

我在Google App Engine上使用JDO.每个“雇员”都有一个“钥匙”.我有一组键,并且想要检索其键属于此组的所有雇员.

因此,我使用0700指定的“ 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”有特殊含义吗?

解决方法:

我相信它正在映射一个隐式输入参数.由于只有一个参数,因此无需显式调用setParameter,您可以使用它.我相信这样可以:

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

可能更清楚.

有关另一个示例,请参见Apache JDOQL docs的“隐式参数”部分.

标签:jdo,google-app-engine,java,jdoql
来源: https://codeday.me/bug/20191023/1916442.html