java - JDO - 按父级查询/链接子级(Google App Engine)?

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

我一直在尝试让 JDO 处理父/子关系,但没有取得太大成功。使用关系设置如here所示和查询如所见here ,我希望能够将子级链接到父级,然后能够查询给定父级的所有子级。不幸的是,我似乎没有正确询问 children 。我不断收到错误:

 Class Parent for query has not been resolved. Check the query and any imports/aliases specification

这是我的代码的样子。首先是父类:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Parent
{
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
    @SuppressWarnings("unused")
    @Persistent(mappedBy = "parent")
    private ArrayList<Child> children;
    @Persistent
    private String name;

    //...
}

子类:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Child
{

    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
    @Persistent
    private Parent parent;
    @Persistent
    private String name;

    //...
}

最后,我尝试的查询如下所示:

Query q = pm.newQuery(Child.class);
q.setFilter("parent = parentParam");
q.declareParameters("Parent parentParam");
@SuppressWarnings("unchecked")
List<Child> childList = (List<Child>) q.execute(someParent);

有什么建议我可能做错了什么吗?非常感谢!

最佳答案

因此在declareParameters调用中定义“Parent”的包。它不在根包中,是吗?而且 JDOQL 不允许赋值“=”,应该是“==”……就像 Java 中一样,因为 JDOQL 使用 Java 语法。

关于java - JDO - 按父级查询/链接子级(Google App Engine)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490293/

相关文章:

java - 无法解析 http ://schemas. xmlsoap.org/wsdl/soap/的绑定(bind)

java - 了解java中的 'TypeElement'和 'DeclaredType'接口(interface)

java - 类加载器返回 NoSuchMethodException 错误

java - Google App Engine - 应用程序在本地 GAE 开发服务器上运行,但在 GAE 上失败

python - 在 GAE Python 中运行 XG 事务

android - 如何使用谷歌应用引擎存储文件并能够查看它?

java - 如何在 Java 中使用 Google App 设置 Cron Job

java - Android Material 重新着色 EditText 下划线

android - 根据 Android 应用程序版本使用特定的应用程序引擎版本

google-app-engine - 同一 GAE 项目中的 Firestore 和 Datastore