Как получить объект с самой новой датой

Кто-нибудь знает, как получить последний (с самой новой датой) объект в объектизации? Я знаю, как сделать запрос, но как получить запрос с самой новой датой?

List<Transaction> fetched2 = ofy.query(Transaction.class).filter("someproperty", somepropertyvalue).order("date").list();

Я мог бы попытаться отсортировать его пузырьком, но я уверен, что есть более простой способ. СПАСИБО


person Bogdan Glosz    schedule 16.05.2012    source источник
comment
что-то вроде добавления .get(0) ?   -  person Daniel    schedule 16.05.2012


Ответы (3)


Вам просто нужно добавить минус перед «датой» в вашем заказе:

List<Transaction> fetched2 = ofy.query(Transaction.class).filter("someproperty", somepropertyvalue).order("-date").list();

Это должно вернуть вам список транзакций с самой новой на первой позиции.

person CMDej    schedule 16.05.2012
comment
спасибо за ответ, но я это уже знаю, возможно, я недостаточно ясно выразился. Я хочу получить этот объект (1-й или последний в зависимости от сортировки) из списка. - person Bogdan Glosz; 16.05.2012
comment
Я бы сказал, что, поскольку вы находитесь в списке, будет работать простой fetched2.get(0) или fetched2.get(fetched2.size() -1)... поскольку список уже отсортирован, это вернет самые новые и самая старая транзакция. - person CMDej; 16.05.2012
comment
Самый простой способ: Transaction tr = ofy.query(Transaction.class).filter("someproperty", somepropertyvalue).order("-date").get(); Это должно возвращать только последний добавленный элемент. - person CMDej; 16.05.2012

Я не знаю о вашем варианте использования, но если вы пытаетесь получить «новые» объекты (те, которые добавлены/обновлены после последнего запроса), вы можете использовать курсоры. Они намного эффективнее, поскольку получают только новые/обновленные объекты: https://developers.google.com/appengine/docs/java/datastore/queries#Query_Cursors

person Peter Knego    schedule 16.05.2012

если вы хотите выполнить сортировку в объектизации, вы должны упорядочить пользователя по методу. Например, если у вас есть таблица Sample и вы хотите применить к ней сортировку

Сортировка по возрастанию Sample sample = ofy.query(Sample .class).filter("propertyname", "propertyvalue).order("+date").list().first();

получает первую запись в

Сортировка по убыванию Sample sample = ofy.query(Sample.class).filter("propertyname", "propertyvalue).order("+date")

person Sreekanth    schedule 07.07.2014