13

現在、Objectify 3.1を使用して、GAEにデプロイするためのアプリを構築しています。order()句を使用してクエリを実行しようとすると、奇妙な結果が得られます。

私のドメイン:


public class InvoiceLineItem
{
    private int units;

    private BigDecimal unitCost;
    private BigDecimal extendedCost;

    private String description;

    @Parent Key<Invoice> invoice;
}

以下を使用して、特定の請求書に関連付けられているすべてのInvoiceLineItemを収集しようとしています。

ofy ().query (InvoiceLineItem.class).ancestor (invoiceKey).list ( );

私のテストケースでは、これは問題なく機能し、期待どおりに2行を返します。

ただし、上記のクエリに並べ替え順序を追加しようとすると、次のようになります。

ofy ().query (InvoiceLineItem.class).ancestor (invoiceKey).order ("+description").list ();

私は常に0の結果を取得します。順序の方向、順序付けのフィールド、クエリ内のorder()句の場所を変更しようとしましたが、すべて効果がありませんでした。誰かが私がここで間違っていることを見ることができますか?

ありがとう...

4

1 に答える 1

28

ここには、潜在的な問題がいくつかあります。

  • 説明フィールドは索引付けする必要があります
  • 説明フィールドは 500 文字未満にする必要があります。これは、500 文字を超えるとTextインデックス化できないに変換されるためです。
  • + を取り除きます。.order("description") または .order("-description") のいずれかです。
于 2012-05-07T18:48:28.730 に答える