On this page
[Java] Interface Queryable<T>
@Internal
public interface Queryable<T>
Represents the queryable objects, e.g. Java collections
- Type Parameters:
T
- the type of Queryable element
- Since:
- 4.0.0
Nested Class Summary
Modifiers | Name | Description |
---|---|---|
class |
Queryable.Order |
Represents an order rule |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
<U> |
public U |
agg(Function<? super Queryable<? extends T>, ? extends U> mapper) The most powerful aggregate function in GINQ, it will receive the grouped result(Queryable instance) and apply any processing |
public BigDecimal |
avg(Function<? super T, ? extends Number> mapper) Aggregate function avg , similar to SQL's avg |
|
public Long |
count() Aggreate function count , similar to SQL's count |
|
<U> |
public Long |
count(Function<? super T, ? extends U> mapper) Aggregate function count , similar to SQL's count Note: if the chosen field is null , the field will not be counted |
<U> |
public Queryable<Tuple2<T, U>> |
crossJoin(Queryable<? extends U> queryable) Cross join another Queryable instance, similar to SQL's cross join |
public Queryable<T> |
distinct() Eliminate duplicated records, similar to SQL's distinct |
|
<T> |
public static Queryable<T> |
emptyQueryable() Returns the empty Queryable instance |
public boolean |
exists() Check if the result is empty, similar to SQL's exists |
|
<T> |
public static Queryable<T> |
from(Iterable<T> iterable) Factory method to create Queryable instance |
<T> |
public static Queryable<T> |
from(T[] array) Factory method to create Queryable instance |
<T> |
public static Queryable<T> |
from(Stream<T> sourceStream) Factory method to create Queryable instance |
<T> |
public static Queryable<T> |
from(Queryable<T> queryable) Returns the original Queryable instance directly |
<U> |
public Queryable<Tuple2<T, U>> |
fullHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2) Full hash join another Queryable instance, similar to SQL's full join |
<U> |
public Queryable<Tuple2<T, U>> |
fullJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner) Full join another Queryable instance, similar to SQL's full join |
public Queryable<Tuple2<?, Queryable<T>>> |
groupBy(Function<? super T, ?> classifier, Predicate<? super Tuple2<?, Queryable<? extends T>>> having) Group by Queryable instance, similar to SQL's group by |
|
public Queryable<Tuple2<?, Queryable<T>>> |
groupBy(Function<? super T, ?> classifier) Group by Queryable instance without having clause, similar to SQL's group by |
|
<U> |
public Queryable<Tuple2<T, U>> |
innerHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2) Inner hash join another Queryable instance, similar to SQL's inner hash join . |
<U> |
public Queryable<Tuple2<T, U>> |
innerJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner) Inner join another Queryable instance, similar to SQL's inner join |
public Queryable<T> |
intersect(Queryable<? extends T> queryable) Intersect another Queryable instance, similar to SQL's intersect |
|
<U> |
public Queryable<Tuple2<T, U>> |
leftHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2) Left hash join another Queryable instance, similar to SQL's left hash join |
<U> |
public Queryable<Tuple2<T, U>> |
leftJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner) Left join another Queryable instance, similar to SQL's left join |
public Queryable<T> |
limit(long offset, long size) Paginate Queryable instance, similar to MySQL's limit |
|
public Queryable<T> |
limit(long size) Paginate Queryable instance, similar to MySQL's limit |
|
<U extends Comparable<? super U>> |
public U |
max(Function<? super T, ? extends U> mapper) Aggregate function max , similar to SQL's max |
public BigDecimal |
median(Function<? super T, ? extends Number> mapper) Aggregate function median , similar to SQL's median |
|
<U extends Comparable<? super U>> |
public U |
min(Function<? super T, ? extends U> mapper) Aggregate function min , similar to SQL's min |
public Queryable<T> |
minus(Queryable<? extends T> queryable) Minus another Queryable instance, similar to SQL's minus |
|
<U extends Comparable<? super U>> |
public Queryable<T> |
orderBy(Order<? super T, ? extends U> orders) Sort Queryable instance, similar to SQL's order by |
<U extends Comparable<? super U>> |
public Queryable<T> |
orderBy(List<? extends Order<? super T, ? extends U>> orders) Sort Queryable instance, similar to SQL's order by |
<U extends Comparable<? super U>> |
public Window<T> |
over(Tuple2<T, Long> currentRecord, WindowDefinition<T, U> windowDefinition) Open window for current record |
<U> |
public Queryable<Tuple2<T, U>> |
rightHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2) Right hash join another Queryable instance, similar to SQL's right join |
<U> |
public Queryable<Tuple2<T, U>> |
rightJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner) Right join another Queryable instance, similar to SQL's right join |
<U> |
public Queryable<U> |
select(BiFunction<? super T, ? super Queryable<? extends T>, ? extends U> mapper) Project Queryable instance, similar to SQL's select |
public long |
size() Returns the count of elements of the Queryable instance |
|
public BigDecimal |
stdev(Function<? super T, ? extends Number> mapper) Aggregate function stdev , similar to SQL's stdev |
|
public BigDecimal |
stdevp(Function<? super T, ? extends Number> mapper) Aggregate function stdevp , similar to SQL's stdevp |
|
public Stream<T> |
stream() Create Stream<T> object for the Queryable instance |
|
public BigDecimal |
sum(Function<? super T, ? extends Number> mapper) Aggregate function sum , similar to SQL's sum |
|
public List<T> |
toList() Convert the Queryable instance to List<T> instance |
|
public Queryable<T> |
union(Queryable<? extends T> queryable) Union another Queryable instance, similar to SQL's union |
|
public Queryable<T> |
unionAll(Queryable<? extends T> queryable) Union all another Queryable instance, similar to SQL's union all |
|
public BigDecimal |
var(Function<? super T, ? extends Number> mapper) Aggregate function var , similar to SQL's var |
|
public BigDecimal |
varp(Function<? super T, ? extends Number> mapper) Aggregate function varp , similar to SQL's varp |
|
public Queryable<T> |
where(Predicate<? super T> filter) Filter Queryable instance via some condition, similar to SQL's where |
Method Detail
<U> public U agg(Function<? super Queryable<? extends T>, ? extends U> mapper)
The most powerful aggregate function in GINQ, it will receive the grouped result(Queryable instance) and apply any processing
- Parameters:
mapper
- map the grouped result(Queryable instance) to aggregate result
- Type Parameters:
U
- the type aggregate result
- Returns:
- aggregate result
- Since:
- 4.0.0
public BigDecimal avg(Function<? super T, ? extends Number> mapper)
Aggregate function avg
, similar to SQL's avg
- Parameters:
mapper
- choose the field to calculate the average
- Returns:
- avg result
- Since:
- 4.0.0
public Long count()
Aggreate function count
, similar to SQL's count
- Returns:
- count result
- Since:
- 4.0.0
<U> public Long count(Function<? super T, ? extends U> mapper)
Aggregate function count
, similar to SQL's count
Note: if the chosen field is null
, the field will not be counted
- Parameters:
mapper
- choose the field to count
- Returns:
- count result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> crossJoin(Queryable<? extends U> queryable)
Cross join another Queryable instance, similar to SQL's cross join
- Parameters:
queryable
- another Queryable instance
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
public Queryable<T> distinct()
Eliminate duplicated records, similar to SQL's distinct
- Returns:
- the distinct result
- Since:
- 4.0.0
<T> public static Queryable<T> emptyQueryable()
Returns the empty Queryable instance
- Type Parameters:
T
- the type of element
- Returns:
- the empty Queryable instance
- Since:
- 4.0.0
public boolean exists()
Check if the result is empty, similar to SQL's exists
- Returns:
-
the result of checking,
true
if result is not empty, otherwisefalse
<T> public static Queryable<T> from(Iterable<T> iterable)
Factory method to create Queryable instance
- Parameters:
iterable
- iterable object, e.g. List
- Type Parameters:
T
- the type of element
- Returns:
- the Queryable instance
- Since:
- 4.0.0
<T> public static Queryable<T> from(T[] array)
Factory method to create Queryable instance
- Parameters:
array
- array object
- Type Parameters:
T
- the type of element
- Returns:
- the Queryable instance
- Since:
- 4.0.0
<T> public static Queryable<T> from(Stream<T> sourceStream)
Factory method to create Queryable instance
- Parameters:
sourceStream
- stream object
- Type Parameters:
T
- the type of element
- Returns:
- the Queryable instance
- Since:
- 4.0.0
<T> public static Queryable<T> from(Queryable<T> queryable)
Returns the original Queryable instance directly
- Parameters:
queryable
- queryable object
- Type Parameters:
T
- the type of element
- Returns:
- the Queryable instance
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> fullHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2)
Full hash join another Queryable instance, similar to SQL's full join
- Parameters:
queryable
- another Queryable instancefieldsExtractor1
- extract fields of one data sourcefieldsExtractor2
- extract fields of the other data source
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> fullJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner)
Full join another Queryable instance, similar to SQL's full join
- Parameters:
queryable
- another Queryable instancejoiner
- join condition
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
public Queryable<Tuple2<?, Queryable<T>>> groupBy(Function<? super T, ?> classifier, Predicate<? super Tuple2<?, Queryable<? extends T>>> having)
Group by Queryable instance, similar to SQL's group by
- Parameters:
classifier
- the classifier for group byhaving
- the filter condition
- Returns:
- the result of group by
- Since:
- 4.0.0
public Queryable<Tuple2<?, Queryable<T>>> groupBy(Function<? super T, ?> classifier)
Group by Queryable instance without having
clause, similar to SQL's group by
- Parameters:
classifier
- the classifier for group by
- Returns:
- the result of group by
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> innerHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2)
Inner hash join another Queryable instance, similar to SQL's inner hash join
. Note: Inner hash join requires equijoin predicate, e.g. on a == b
- Parameters:
queryable
- another Queryable instancefieldsExtractor1
- extract fields of one data sourcefieldsExtractor2
- extract fields of the other data source
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> innerJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner)
Inner join another Queryable instance, similar to SQL's inner join
- Parameters:
queryable
- another Queryable instancejoiner
- join condition
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
public Queryable<T> intersect(Queryable<? extends T> queryable)
Intersect another Queryable instance, similar to SQL's intersect
- Parameters:
queryable
- the other Queryable instance
- Returns:
- the intersect result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> leftHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2)
Left hash join another Queryable instance, similar to SQL's left hash join
- Parameters:
queryable
- another Queryable instancefieldsExtractor1
- extract fields of one data sourcefieldsExtractor2
- extract fields of the other data source
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> leftJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner)
Left join another Queryable instance, similar to SQL's left join
- Parameters:
queryable
- another Queryable instancejoiner
- join condition
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
public Queryable<T> limit(long offset, long size)
Paginate Queryable instance, similar to MySQL's limit
- Parameters:
offset
- the start positionsize
- the size to take
- Returns:
- the result of paginating
- Since:
- 4.0.0
public Queryable<T> limit(long size)
Paginate Queryable instance, similar to MySQL's limit
- Parameters:
size
- the size to take
- Returns:
- the result of paginating
- Since:
- 4.0.0
<U extends Comparable<? super U>> public U max(Function<? super T, ? extends U> mapper)
Aggregate function max
, similar to SQL's max
- Parameters:
mapper
- choose the field to find the maximum
- Type Parameters:
U
- the field type
- Returns:
- min result
- Since:
- 4.0.0
public BigDecimal median(Function<? super T, ? extends Number> mapper)
Aggregate function median
, similar to SQL's median
- Parameters:
mapper
- choose the field to median
- Returns:
- median result
- Since:
- 4.0.0
<U extends Comparable<? super U>> public U min(Function<? super T, ? extends U> mapper)
Aggregate function min
, similar to SQL's min
- Parameters:
mapper
- choose the field to find the minimum
- Type Parameters:
U
- the field type
- Returns:
- min result
- Since:
- 4.0.0
public Queryable<T> minus(Queryable<? extends T> queryable)
Minus another Queryable instance, similar to SQL's minus
- Parameters:
queryable
- the other Queryable instance
- Returns:
- the minus result
- Since:
- 4.0.0
<U extends Comparable<? super U>> public Queryable<T> orderBy(Order<? super T, ? extends U> orders)
Sort Queryable instance, similar to SQL's order by
- Parameters:
orders
- the order rules for sorting
- Type Parameters:
U
- the type of field to sort
- Returns:
- the result of order by
- Since:
- 4.0.0
<U extends Comparable<? super U>> public Queryable<T> orderBy(List<? extends Order<? super T, ? extends U>> orders)
Sort Queryable instance, similar to SQL's order by
- Parameters:
orders
- the order rules for sorting
- Type Parameters:
U
- the type of field to sort
- Returns:
- the result of order by
- Since:
- 4.0.0
<U extends Comparable<? super U>> public Window<T> over(Tuple2<T, Long> currentRecord, WindowDefinition<T, U> windowDefinition)
Open window for current record
- Parameters:
currentRecord
- current recordwindowDefinition
- window definition
- Type Parameters:
U
- the type of window value
- Returns:
- the window
<U> public Queryable<Tuple2<T, U>> rightHashJoin(Queryable<? extends U> queryable, Function<? super T, ?> fieldsExtractor1, Function<? super U, ?> fieldsExtractor2)
Right hash join another Queryable instance, similar to SQL's right join
- Parameters:
queryable
- another Queryable instancefieldsExtractor1
- extract fields of one data sourcefieldsExtractor2
- extract fields of the other data source
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
<U> public Queryable<Tuple2<T, U>> rightJoin(Queryable<? extends U> queryable, BiPredicate<? super T, ? super U> joiner)
Right join another Queryable instance, similar to SQL's right join
- Parameters:
queryable
- another Queryable instancejoiner
- join condition
- Type Parameters:
U
- the type of element from another Queryable instance
- Returns:
- the join result
- Since:
- 4.0.0
<U> public Queryable<U> select(BiFunction<? super T, ? super Queryable<? extends T>, ? extends U> mapper)
Project Queryable instance, similar to SQL's select
- Parameters:
mapper
- project fields
- Type Parameters:
U
- the type of project record
- Returns:
- the result of projecting
- Since:
- 4.0.0
public long size()
Returns the count of elements of the Queryable instance
- Returns:
- the count of elements of the Queryable instance
- Since:
- 4.0.0
public BigDecimal stdev(Function<? super T, ? extends Number> mapper)
Aggregate function stdev
, similar to SQL's stdev
- Parameters:
mapper
- choose the field to calculate the statistical standard deviation
- Returns:
- statistical standard deviation
- Since:
- 4.0.0
public BigDecimal stdevp(Function<? super T, ? extends Number> mapper)
Aggregate function stdevp
, similar to SQL's stdevp
- Parameters:
mapper
- choose the field to calculate the statistical standard deviation for the population
- Returns:
- statistical standard deviation for the population
- Since:
- 4.0.0
public Stream<T> stream()
Create Stream<T> object for the Queryable instance
- Returns:
- the result stream
- Since:
- 4.0.0
public BigDecimal sum(Function<? super T, ? extends Number> mapper)
Aggregate function sum
, similar to SQL's sum
- Parameters:
mapper
- choose the field to sum
- Returns:
- sum result
- Since:
- 4.0.0
public List<T> toList()
Convert the Queryable instance to List<T> instance
- Returns:
- the result list
- Since:
- 4.0.0
public Queryable<T> union(Queryable<? extends T> queryable)
Union another Queryable instance, similar to SQL's union
- Parameters:
queryable
- the other Queryable instance
- Returns:
- the union result
- Since:
- 4.0.0
public Queryable<T> unionAll(Queryable<? extends T> queryable)
Union all another Queryable instance, similar to SQL's union all
- Parameters:
queryable
- the other Queryable instance
- Returns:
- the union all result
- Since:
- 4.0.0
public BigDecimal var(Function<? super T, ? extends Number> mapper)
Aggregate function var
, similar to SQL's var
- Parameters:
mapper
- choose the field to calculate the statistical variance
- Returns:
- statistical variance
- Since:
- 4.0.0
public BigDecimal varp(Function<? super T, ? extends Number> mapper)
Aggregate function varp
, similar to SQL's varp
- Parameters:
mapper
- choose the field to calculate the statistical variance for the population
- Returns:
- statistical variance for the population
- Since:
- 4.0.0
public Queryable<T> where(Predicate<? super T> filter)
Filter Queryable instance via some condition, similar to SQL's where
- Parameters:
filter
- the filter condition
- Returns:
- filter result
- Since:
- 4.0.0
© 2003-2022 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/4.0.0/html/gapi/org/apache/groovy/ginq/provider/collection/runtime/Queryable.html