@Override public QuerySort getQuerySort() { return DESCRIPTION.asc(); }
@Override public Optional<QuerySort> resolve(MySort expression, ResolutionContext context) throws InvalidExpressionException { return Optional.of(P1.asc().and(P2.desc())); // <3> }
public void sort2() { // tag::sort2[] final PathProperty<String> PROPERTY = PathProperty.create("test", String.class); final PathProperty<String> ANOTHER_PROPERTY = PathProperty.create("another", String.class); // <1> QuerySort sortAsc = PROPERTY.asc(); // sort ASCENDING on given property QuerySort sortDesc = PROPERTY.desc(); // sort DESCENDING on given property // <2> PROPERTY.asc().and(ANOTHER_PROPERTY.desc()); // sort ASCENDING on PROPERTY, than sort DESCENDING on // ANOTHER_PROPERTY // end::sort2[] }
public void listing9() { // tag::listing9[] PropertyListing listing = Components.listing.properties(PROPERTIES) // .sortable(ID, true) // <1> .sortUsing(ID, DESCRIPTION) // <2> .sortGenerator(ID, (property, ascending) -> { // <3> return ascending ? ID.asc() : ID.desc(); }) // .fixedSort(ID.asc()) // <4> .defaultSort(DESCRIPTION.asc()) // <5> .fixedFilter(ID.gt(0L)) // <6> .withQueryConfigurationProvider(() -> DESCRIPTION.isNotNull()) // <7> .build(); // end::listing9[] }
public void listing9() { // tag::listing9[] PropertyListing listing = Components.listing.properties(PROPERTIES) // .sortable(ID, true) // <1> .sortUsing(ID, DESCRIPTION) // <2> .sortGenerator(ID, (property, ascending) -> { // <3> return ascending ? ID.asc() : ID.desc(); }) // .fixedSort(ID.asc()) // <4> .defaultSort(DESCRIPTION.asc()) // <5> .fixedFilter(ID.gt(0L)) // <6> .withQueryConfigurationProvider(() -> DESCRIPTION.isNotNull()) // <7> .build(); // end::listing9[] }
public void queryDefinition() { // tag::querydefinition[] final PathProperty<Integer> PROPERTY = PathProperty.create("test", Integer.class); Datastore datastore = getDatastore(); // build or obtain a Datastore Query query = datastore.query() // <1> .target(DataTarget.named("testTarget")) // <2> .filter(PROPERTY.gt(10)) // <3> .sort(PROPERTY.asc()) // <4> .aggregate(PROPERTY) // <5> .limit(100) // <6> .offset(200); // <7> query = datastore.query(DataTarget.named("testTarget")) // <8> .aggregate(QueryAggregation.builder().path(PROPERTY).filter(PROPERTY.gt(10)).build()) // <9> .restrict(100, 200); // <10> // end::querydefinition[] }