2010-08-13 3 views
3

Google 애플리케이션 엔진에서 JDO를 사용하고 있습니다. 각 '직원'에게는 '핵심'이 있습니다. 키 집합이 있고이 집합에 속한 키를 가진 모든 Employee를 검색하려고합니다.JDO 쿼리에서 ": P"의미는 무엇입니까?

그래서 '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'는 특별한 의미가 있습니까?

답변

5

나는 암묵적인 입력 매개 변수를 매핑하고 있다고 생각합니다. 매개 변수가 하나뿐이므로 명시 적으로 setParameter을 호출 할 필요가 없습니다. 그냥 사용할 수 있습니다. 명확 수 있습니다

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

: 나는 그것을 대로 괜찮왔다 생각합니다.

다른 예로는 Apache JDOQL docs의 "암시 적 매개 변수"부분을 참조하십시오.