@Override @Deprecated public Query<T> limit(final int value) { getOptions().limit(value); return this; }
@Override public boolean exists(final Query<T> query) { return query.get(new FindOptions().limit(1)) != null; }
private Page<LogTrace> preparePage(Query<LogTrace> query, Integer page, Integer limit) { List<LogTrace> list; Long totalElements = query.count(); query = query.order("-ts"); page = page == null ? PAGE : page; limit = limit == null || limit > LIMIT ? LIMIT : limit; if (page >= 1 && limit > 0) { list = query.asList(new FindOptions().limit(limit).skip(page * limit)); } else { list = query.asList(new FindOptions().limit(limit)); } return buildPage(list, page, limit, totalElements); }
@Override public Key<T> getKey(final FindOptions options) { final MorphiaIterator<T, Key<T>> it = fetchKeys(options .copy() .limit(1)); Key<T> key = (it.hasNext()) ? it.next() : null; it.close(); return key; }
@Override public <T> Page<T> find(Object criteria, Integer page, Integer limit) { Query<T> query = this.prepareQuery(criteria, this.datastore()); List<T> list; Long totalElements = query.count(); page = page == null ? PAGE : page; limit = limit == null || limit > LIMIT ? LIMIT : limit; if (page >= 1 && limit > 0) { list = query.asList(new FindOptions().limit(limit).skip(page * limit)); } else { list = query.asList(new FindOptions().limit(limit)); } return buildPage(list, page, limit, totalElements); }
@Override public <T> Page<T> find(Object criteria, Integer page, Integer limit) { Query<T> query = this.prepareQuery(criteria, this.datastore()); List<T> list; Long totalElements = query.count(); page = page == null ? PAGE : page; limit = limit == null || limit > LIMIT ? LIMIT : limit; if (page >= 1 && limit > 0) { list = query.asList(new FindOptions().limit(limit).skip(page * limit)); } else { list = query.asList(new FindOptions().limit(limit)); } return buildPage(list, page, limit, totalElements); }
@Override public T get(final FindOptions options) { final MorphiaIterator<T, T> it = fetch(options .copy() .limit(1)); try { return (it.hasNext()) ? it.next() : null; } finally { it.close(); } }