私は 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;
...
}
ここParentObj
で、特定の を持つすべてのオブジェクトをフィルタリングしたいとしますChildObj
。私は持っている
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
インスタンスで使用できますか?