0

私は appEnginy と objectify を初めて使用します。ただし、dbから値を取得するには、dbから単一の行をフェッチする必要があります。で要素を取得しようとしましたofy().load().type(Branch.class).filter("parent_branch_id", 0).first()が、結果はFirstRef(null)です。ただし、次のループを実行すると:

for(Branch b : ofy().load().type(Branch.class).list()) {
    System.out.println(b.id +". "+b.tree_label+" - parent is " +b.parent_branch_id);
};

私は何を間違っていますか?

[編集] もちろん、ブランチはデータベース エンティティです。parent_branch_id が long 型であることが重要である場合。

4

3 に答える 3

1

リクエストの結果としてa が必要な場合は、 aBranchを見逃していると思います.now():
Branch branch = ofy().load().type(Branch.class).filter("parent_branch_id", 0).first().now();

于 2013-10-10T08:57:23.207 に答える
0

プロパティ@Indexに注釈がないようです。parent_branch_idを実行するとofy().load().type(Branch.class).list()、Objectify は効果的に (Query("Branch")低レベル API で行うように) 種類ごとにバッチ取得を行うため、プロパティ インデックスは必要ありません。を追加するとすぐにfilter()、クエリが使用されます。

Objectify 4 を使用していると仮定すると、プロパティはデフォルトではインデックス化されません。@Indexクラスに注釈を追加することで、エンティティ内のすべてのプロパティにインデックスを付けることができます。注釈リファレンスは有用な情報を提供します。

于 2013-10-10T13:57:57.227 に答える
0

Objectify API リファレンスの例:

LoadResult<Thing> th = ofy.load().type(Thing.class).filter("foo", foo).first();
Thing th =       ofy.load().type(Thing.class).filter("foo", foo).first().now();

したがって、メンバー「foo」に @Index があることを確認し、now() を使用して最初の要素を取得する必要があります。要素が見つからない場合、これは null を返します。

あなたの場合は長いかもしれ"parent_branch_id"ません。その場合、値は0ではなく0Lでなければなりません。

于 2013-10-10T23:48:37.313 に答える