2015-08-18 3 views
0

У меня есть объект, который содержит @ParentЦелью заказа() требуется предок()?

public class MyObject { 

    @Id 
    private    String   instID; 

    // This has to stay String, because GAE doesn't take custom type 
    @Index 
    @Parent 
    private    Ref<Partner> ownerRef; 

    @Index 
    private    Date   createdOn; 
} 

Когда я попытался запрос для всех последнего MyObject, запустив ...

ofy().load() 
    .type(MyObject.class) 
    .order("-createdOn") 
    .limit(10) 
    .list(); 

Я получил нулевую запись назад ... Однако, если я прокомментирую часть .order(), я вернул запись. Интересно, требуется ли order() для предка().

Кто-нибудь знает?

+0

Поэтому я модифицировал инструкцию load(), чтобы включить ancestor(), и она работает ... но она представляет проблему, потому что я действительно хочу выбрать 10 лучших записей, несмотря на то, что является родителем. –

ответ

1

@Parent и ancestor() - это красные сельди. Ваш запрос должен работать как есть. Вы уверены, что сохранили объект с полем @Index? Если вы добавите @Index, вам нужно переустановить объект, чтобы установить индекс.

Выполнение запросов без фильтров всегда работает - оно всегда возвращает каждую сущность. Для фильтрации требуется живой индекс.

+0

stickfigure ... вы снова прибили его по голове ... Я просто удалил все свои тестовые данные и начал работать, и запрос работает. Поэтому ответ на мой вопрос: «Нет, не нужно будет звонить предку() при использовании порядка()« Еще раз спасибо! –