本文整理了Java中com.psddev.dari.db.Query.getSorters
方法的一些代码示例,展示了Query.getSorters
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.getSorters
方法的具体详情如下:
包路径:com.psddev.dari.db.Query
类名称:Query
方法名:getSorters
[英]Returns the list of sorters applied to the result.
[中]返回应用于结果的分类器列表。
代码示例来源:origin: perfectsense/dari
/** Adds the given {@code sorter}. */
public Query<E> sort(Sorter sorter) {
getSorters().add(sorter);
return this;
}
代码示例来源:origin: perfectsense/dari
@Override
public Iterator<T> iterator() {
return query.getSorters().isEmpty()
? new ByIdIterator<T>(query, fetchSize)
: new PaginatedIterator<T>(query, fetchSize);
}
}
代码示例来源:origin: perfectsense/dari
public ByIdIterator(Query<T> query, int fetchSize) {
if (!query.getSorters().isEmpty()) {
throw new IllegalArgumentException("Can't iterate over a query that has sorters!");
}
this.query = query.clone().timeout(0.0).sortAscending("_type").sortAscending("_id");
this.fetchSize = fetchSize > 0 ? fetchSize : 200;
}
代码示例来源:origin: perfectsense/dari
@Override
public <T> Iterable<T> readIterable(Query<T> query, int fetchSize) {
if (query.getSorters().isEmpty()) {
if (!ObjectUtils.to(boolean.class, query.getOptions().get(DISABLE_BY_ID_ITERATOR_OPTION))) {
return ByIdIterator.iterable(query, fetchSize);
}
}
return selectIterable(buildSelectStatement(query), fetchSize, query);
}
代码示例来源:origin: perfectsense/brightspot-cms
public Query<?> toPreviousQuery(State state) {
String sortFieldName = getSortFieldName();
Query<?> query = toQuery().and(sortFieldName + " <= ? and _id != ?", state.get(sortFieldName), state.getId());
for (ListIterator<Sorter> i = query.getSorters().listIterator(); i.hasNext();) {
Sorter sorter = i.next();
if (Sorter.ASCENDING_OPERATOR.equals(sorter.getOperator())) {
List<Object> options = sorter.getOptions();
if (options != null
&& options.size() > 0
&& sortFieldName.equals(options.get(0))) {
i.set(new Sorter(Sorter.DESCENDING_OPERATOR, options));
}
}
}
return query;
}
代码示例来源:origin: perfectsense/dari
/**
* Maps all keys used in this query to the fields of the types in the
* given {@code environment}. This is a helper method for database
* implementations and isn't meant for general consumption.
*
* @see #mapEmbeddedKey
*/
public Map<String, MappedKey> mapEmbeddedKeys(DatabaseEnvironment environment) {
Map<String, MappedKey> mappedKeys = new HashMap<String, MappedKey>();
addMappedPredicate(mappedKeys, environment, getPredicate());
for (Sorter sorter : getSorters()) {
Object first = sorter.getOptions().get(0);
if (first instanceof String) {
addMappedKey(mappedKeys, environment, (String) first);
}
}
return mappedKeys;
}
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : getSorters()) {
codeBuilder.append(".sort(\"");
codeBuilder.append(sorter.getOperator());
代码示例来源:origin: perfectsense/dari
/**
* Returns a list of values to be matched against the ID if and only if
* the query contains a single predicate in the form of {@code _id = ?}.
*
* @return {@code null} if the query matches against anything other than ID.
*/
public List<Object> findIdOnlyQueryValues() {
if (getSorters().isEmpty()) {
Predicate predicate = getPredicate();
if (predicate instanceof ComparisonPredicate) {
ComparisonPredicate comparison = (ComparisonPredicate) predicate;
if (ID_KEY.equals(comparison.getKey())
&& PredicateParser.EQUALS_ANY_OPERATOR.equals(comparison.getOperator())
&& comparison.findValueQuery() == null) {
return comparison.getValues();
}
}
}
return null;
}
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
addOrderByClause(orderByBuilder, sorter, false, true);
代码示例来源:origin: perfectsense/dari
/** Builds MongoDB query based on the given {@code query}. */
public DBObject buildMongoSort(Query<?> query) {
List<Sorter> sorters = query.getSorters();
if (sorters.isEmpty()) {
return new BasicDBObject();
}
BasicDBObject mongoSorter = new BasicDBObject();
for (Sorter sorter : sorters) {
String operator = sorter.getOperator();
if (Sorter.ASCENDING_OPERATOR.equals(operator)) {
String indexKey = query.mapEmbeddedKey(getEnvironment(), (String) sorter.getOptions().get(0)).getIndexKey(null);
mongoSorter.append(indexKey, 1);
} else if (Sorter.DESCENDING_OPERATOR.equals(operator)) {
String indexKey = query.mapEmbeddedKey(getEnvironment(), (String) sorter.getOptions().get(0)).getIndexKey(null);
mongoSorter.append(indexKey, -1);
} else {
throw new UnsupportedSorterException(this, sorter);
}
}
return mongoSorter;
}
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
String op = sorter.getOperator();
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
addOrderByClause(orderByBuilder, sorter, false, true);
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
codeBuilder.append(".sort(\"");
codeBuilder.append(sorter.getOperator());
代码示例来源:origin: perfectsense/dari
@Override
public <T> T readFirst(Query<T> query) {
if (query.getSorters().isEmpty()) {
代码示例来源:origin: perfectsense/dari
@Override
public <T> T readFirst(Query<T> query) {
if (query.getSorters().isEmpty()) {
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
String operator = sorter.getOperator();
boolean isAscending = Sorter.ASCENDING_OPERATOR.equals(operator);
代码示例来源:origin: perfectsense/dari
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
} else if (other instanceof Query) {
Query<?> otherQuery = (Query<?>) other;
return ObjectUtils.equals(group, otherQuery.group)
&& ObjectUtils.equals(objectClass, otherQuery.objectClass)
&& ObjectUtils.equals(predicate, otherQuery.predicate)
&& ObjectUtils.equals(getSorters(), otherQuery.getSorters())
&& ObjectUtils.equals(getDatabase(), otherQuery.getDatabase())
&& ObjectUtils.equals(getFields(), otherQuery.getFields())
&& ObjectUtils.equals(getOptions(), otherQuery.getOptions())
&& isResolveToReferenceOnly == otherQuery.isResolveToReferenceOnly
&& ObjectUtils.equals(timeout, otherQuery.timeout);
} else {
return false;
}
}
代码示例来源:origin: perfectsense/dari
@Override
public int hashCode() {
return ObjectUtils.hashCode(
getGroup(),
getObjectClass(),
getPredicate(),
getSorters(),
getDatabase(),
getFields(),
getOptions(),
isResolveToReferenceOnly(),
getTimeout());
}
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
SortField<?> sortField = database.sort(sorter, new SqlSortOptions(recordTableAlias));
代码示例来源:origin: perfectsense/dari
for (Sorter sorter : query.getSorters()) {
String op = sorter.getOperator();
内容来源于网络,如有侵权,请联系作者删除!