Class PropertyQuery
- java.lang.Object
-
- io.objectbox.query.PropertyQuery
-
public class PropertyQuery extends java.lang.Object
Query for a specific property; create usingQuery.property(Property)
. Note: Property values do currently not consider any order defined for the mainQuery
object (subject to change in a future version).
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
avg()
Calculates the average of all values for the given number property over all Objects matching the query.long
avgLong()
Calculates the average of all values for the given integer property over all Objects matching the query.long
count()
The count of non-null values.PropertyQuery
distinct()
Only distinct values should be returned (e.g.PropertyQuery
distinct(QueryBuilder.StringOrder stringOrder)
For string properties you can specifyQueryBuilder.StringOrder.CASE_SENSITIVE
if you want to have case sensitive distinct values (e.g.java.lang.Boolean
findBoolean()
java.lang.Byte
findByte()
byte[]
findBytes()
Find the values for the given byte property for objects matching the query.java.lang.Character
findChar()
char[]
findChars()
Find the values for the given int property for objects matching the query.java.lang.Double
findDouble()
double[]
findDoubles()
Find the values for the given int property for objects matching the query.java.lang.Float
findFloat()
float[]
findFloats()
Find the values for the given int property for objects matching the query.java.lang.Integer
findInt()
int[]
findInts()
Find the values for the given int property for objects matching the query.java.lang.Long
findLong()
long[]
findLongs()
Find the values for the given long property for objects matching the query.java.lang.Short
findShort()
short[]
findShorts()
Find the values for the given int property for objects matching the query.java.lang.String
findString()
java.lang.String[]
findStrings()
Find the values for the given string property for objects matching the query.long
max()
Finds the maximum value for the given property over all Objects matching the query.double
maxDouble()
Finds the maximum value for the given property over all Objects matching the query.long
min()
Finds the minimum value for the given property over all Objects matching the query.double
minDouble()
Finds the minimum value for the given property over all objects matching the query.PropertyQuery
nullValue(java.lang.Object nullValue)
By default, null values are not returned by find methods (primitive arrays cannot contains nulls).PropertyQuery
reset()
Clears all values (e.g.long
sum()
Sums up all values for the given property over all Objects matching the query.double
sumDouble()
Sums up all values for the given property over all Objects matching the query.PropertyQuery
unique()
For find methods returning single values, e.g.
-
-
-
Method Detail
-
reset
public PropertyQuery reset()
Clears all values (e.g. distinct and null value).
-
distinct
public PropertyQuery distinct()
Only distinct values should be returned (e.g. 1,2,3 instead of 1,1,2,3,3,3).Note: strings default to case-insensitive comparision; to change that call
distinct(QueryBuilder.StringOrder)
.
-
distinct
public PropertyQuery distinct(QueryBuilder.StringOrder stringOrder)
For string properties you can specifyQueryBuilder.StringOrder.CASE_SENSITIVE
if you want to have case sensitive distinct values (e.g. returning "foo","Foo","FOO" instead of "foo").
-
unique
public PropertyQuery unique()
For find methods returning single values, e.g.findInt()
, this will additional verify that the resulting value is unique. If there is any other resulting value resulting from this query, an exception will be thrown.Can be combined with
distinct()
.Will be ignored for find methods returning multiple values, e.g.
findInts()
.
-
nullValue
public PropertyQuery nullValue(java.lang.Object nullValue)
By default, null values are not returned by find methods (primitive arrays cannot contains nulls). However, using this function, you can define an alternative value that will be returned for null values. E.g. -1 for ins/longs or "NULL" for strings.
-
findStrings
public java.lang.String[] findStrings()
Find the values for the given string property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
,distinct(QueryBuilder.StringOrder)
- Returns:
- Found strings
-
findLongs
public long[] findLongs()
Find the values for the given long property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
- Returns:
- Found longs
-
findInts
public int[] findInts()
Find the values for the given int property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
-
findShorts
public short[] findShorts()
Find the values for the given int property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
-
findChars
public char[] findChars()
Find the values for the given int property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
-
findBytes
public byte[] findBytes()
Find the values for the given byte property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
-
findFloats
public float[] findFloats()
Find the values for the given int property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
-
findDoubles
public double[] findDoubles()
Find the values for the given int property for objects matching the query.Note: null values are excluded from results.
Note: results are not guaranteed to be in any particular order.
See also:
distinct()
-
findString
public java.lang.String findString()
-
findLong
public java.lang.Long findLong()
-
findInt
public java.lang.Integer findInt()
-
findShort
public java.lang.Short findShort()
-
findChar
public java.lang.Character findChar()
-
findByte
public java.lang.Byte findByte()
-
findBoolean
public java.lang.Boolean findBoolean()
-
findFloat
public java.lang.Float findFloat()
-
findDouble
public java.lang.Double findDouble()
-
sum
public long sum()
Sums up all values for the given property over all Objects matching the query.Note: this method is not recommended for properties of type long unless you know the contents of the DB not to overflow. Use
sumDouble()
instead if you cannot guarantee the sum to be in the long value range.- Returns:
- 0 in case no elements matched the query
- Throws:
NumericOverflowException
- if the sum exceeds the numbersLong
can represent. This is different from Java arithmetic where it would "wrap around" (e.g. max. value + 1 = min. value).
-
sumDouble
public double sumDouble()
Sums up all values for the given property over all Objects matching the query.Note: for integer types int and smaller,
sum()
is usually preferred for sums.- Returns:
- 0 in case no elements matched the query
-
max
public long max()
Finds the maximum value for the given property over all Objects matching the query.- Returns:
- Long.MIN_VALUE in case no elements matched the query
-
maxDouble
public double maxDouble()
Finds the maximum value for the given property over all Objects matching the query.- Returns:
- NaN in case no elements matched the query
-
min
public long min()
Finds the minimum value for the given property over all Objects matching the query.- Returns:
- Long.MAX_VALUE in case no elements matched the query
-
minDouble
public double minDouble()
Finds the minimum value for the given property over all objects matching the query.- Returns:
- NaN in case no elements matched the query
-
avg
public double avg()
Calculates the average of all values for the given number property over all Objects matching the query.For integer properties you can also use
avgLong()
.- Returns:
- NaN in case no elements matched the query
-
avgLong
public long avgLong()
Calculates the average of all values for the given integer property over all Objects matching the query.For floating-point properties use
avg()
.- Returns:
- 0 in case no elements matched the query
-
count
public long count()
The count of non-null values.See also:
distinct()
-
-