0

私は JDO を親子関係で動作させようとしてきましたが、あまり成功していません。ここに見られる関係セットアップとここに見られるクエリを使用して、子を親にリンクし、特定の親のすべての子をクエリできるようにしたいと考えています。残念ながら、私は子供たちを正しく照会していないようです。エラーが発生し続けます:

 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);

私が間違っているかもしれない何か提案はありますか?どうもありがとう!

4

1 に答える 1

2

したがって、declareParameters 呼び出しで「親」のパッケージを定義します。ルートパッケージにはありませんよね?また、JDOQL は Java 構文を使用するため、Java のように "==" である必要がある代入 "=" を許可しません。

于 2013-05-11T06:31:24.897 に答える