1

私は 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インスタンスで使用できますか?

4

1 に答える 1

1

Javaでできるので、間違いなく「child == childVal」(つまり、等式)を実行できます。

割り当て( "=")はできません。

于 2010-02-22T07:17:32.583 に答える