【发布时间】:2010-02-21 19:51:15
【问题描述】:
我对 JDO 很陌生,想问一下是否可以使用复杂对象进行过滤。我知道你可以这样做:
Query q = pm.newQuery(MyClass.class, "field1 < value");
q.declareParameters("int value");
List results = q.execute(205);
Iterator iter = results.iterator();
但假设我有以下情况:
@PersistenceCapable(...)
class ParentObj{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
String id;
...
@Persistent
ChildObj child;
}
@PersistenceCapable(...)
class ChildObj{
@Persistent
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
String id;
...
}
现在假设我要过滤所有给定ChildObj 的ParentObj 对象。我有
public List<ParentObj> getAllParentObjBy(ChildObj child){
PersistenceManager pm = ...
Query query = pm.newQuery(ParentObj.class, "child = childVal");
query.declareParameters("ChildObj childVal");
Collection result = (Collection)query.execute(child);
//???
return result;
}
这是非常伪代码,但我希望思路清晰。我是否可以像第一个示例中那样使用 Query 对象,但在这种情况下使用 child 实例?
【问题讨论】:
标签: java google-app-engine jdo google-cloud-datastore