java - JDO 查询 : Is it possible to filter using complex objects?

标签 java google-app-engine jdo google-cloud-datastore

我对 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;

   ...
}

现在假设我想过滤所有具有给定 ChildObjParentObj 对象。我有

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 实例吗?

最佳答案

你绝对可以做到“child == childVal”(即相等)......因为你可以在Java中做到这一点。

您不能进行赋值(“=”)。

关于java - JDO 查询 : Is it possible to filter using complex objects?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307224/

相关文章:

google-app-engine - Fusion Table 和 Google 服务帐户

google-app-engine - Google Apps 应用程序相互通信

java - DocumentBuilder.parse 引发错误 "The prefix "c“元素 "c:de"未绑定(bind)。”

java - 空对象引用上的 DialogFragment 'java.lang.String android.content.Context.getPackageName()'

java最佳实践——内部类访问外部类静态变量

google-app-engine - "message": "java.lang.NullPointerException" when trying to insert entity via api-explorer

java - 日历 - 每周日期 - Java

java - 将 Memcache 与 GAE、Java 和 JDO 事务结合使用

java - Cross Group (XG) 交易中超过 5 个实体组

java - Tapestry +JDO+GAE