Как отсортировать ответы в Objectify?

В настоящее время я создаю приложение для развертывания в GAE с использованием Objectify 3.1. Я получаю странные результаты при попытке сделать запрос с предложением order ().

Мой домен:

<code>
public class InvoiceLineItem
{
    private int units;

    private BigDecimal unitCost;
    private BigDecimal extendedCost;

    private String description;

    @Parent Key<Invoice> invoice;
}
</code>

Я пытаюсь собрать все элементы InvoiceLineItem, связанные с данным счетом, используя следующее:

<code>ofy ().query (InvoiceLineItem.class).ancestor (invoiceKey).list ( );
</code>

В моем тестовом случае это работает просто отлично, возвращая 2 строки, как и ожидалось.

Однако, когда я пытаюсь добавить порядок сортировки к вышеуказанному запросу, вот так:

<code>ofy ().query (InvoiceLineItem.class).ancestor (invoiceKey).order ("+description").list ();
</code>

Я всегда получаю 0 результатов. Я пытался изменить направление заказа, поле, в котором упорядочивался порядок, расположение предложения order () в запросе, но все безрезультатно. Может ли кто-нибудь увидеть что-то, что я здесь делаю неправильно?

Спасибо...

Ответы на вопрос(1)

Решение Вопроса

Поле описания должно быть проиндексировано Поле описания должно быть меньше 500 символов, потому что более 500 символов преобразуется вText который не индексируется Избавиться от +. Это либо .order ("описание"), либо .order ("- описание").
 Steve07 мая 2012 г., 22:33
Хотя интересно. У меня сложилось впечатление, что в Objectify 3.1 все поля были проиндексированы, если они не помечены@Unindexed. Версия 4.0 изменяет это поведение, чтобы все поля не были проиндексированы, если они не отмечены знаком@Indexed. Я ошибаюсь с этим впечатлением?
 stickfigure08 мая 2012 г., 03:52
Да вы правы. В 3.1 все поля индексируются по умолчанию. Я не был уверен, был ли вставленный код точным, поэтому было бы разумно упомянуть проблему с индексами, что является распространенной ошибкой. Рад, что сейчас работает!
 Steve07 мая 2012 г., 22:30
Оказывается, это «+». Я думал, что прочитал, что вы можете использовать «+» для подъема или «-» для спуска. Кажется, нужен только минус. Спасибо за совет

Ваш ответ на вопрос