Class PanacheQueryImpl<Entity>
- java.lang.Object
-
- io.quarkus.mongodb.panache.runtime.PanacheQueryImpl<Entity>
-
- All Implemented Interfaces:
PanacheQuery<Entity>
public class PanacheQueryImpl<Entity> extends Object implements PanacheQuery<Entity>
-
-
Constructor Summary
Constructors Constructor Description PanacheQueryImpl(com.mongodb.client.MongoCollection<? extends Entity> collection, com.mongodb.client.ClientSession session, org.bson.conversions.Bson mongoQuery, org.bson.conversions.Bson sort)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
count()
Reads and caches the total number of entities this query operates on.<T extends Entity>
PanacheQuery<T>firstPage()
Sets the current page to the first page<T extends Entity>
TfirstResult()
Returns the first result of the current page index.<T extends Entity>
Optional<T>firstResultOptional()
Returns the first result of the current page index.boolean
hasNextPage()
Returns true if there is another page to read after the current one.boolean
hasPreviousPage()
Returns true if there is a page to read before the current one.<T extends Entity>
PanacheQuery<T>lastPage()
Sets the current page to the last page.<T extends Entity>
List<T>list()
Returns the current page of results as aList
.<T extends Entity>
PanacheQuery<T>nextPage()
Sets the current page to the next pagePage
page()
Returns the current page.<T extends Entity>
PanacheQuery<T>page(int pageIndex, int pageSize)
Sets the current page.<T extends Entity>
PanacheQuery<T>page(Page page)
Sets the current page.int
pageCount()
Returns the total number of pages to be read using the current page size.<T extends Entity>
PanacheQuery<T>previousPage()
Sets the current page to the previous page (or the first page if there is no previous page)<T> PanacheQuery<T>
project(Class<T> type)
Defines a projection class: the getters, and the public fields, will be used to restrict which fields should be retrieved from the database.<T extends Entity>
PanacheQuery<T>range(int startIndex, int lastIndex)
Switch the query to use a fixed range (start index - last index) instead of a page.<T extends Entity>
TsingleResult()
Executes this query for the current page and return a single result.<T extends Entity>
Optional<T>singleResultOptional()
Executes this query for the current page and return a single result.<T extends Entity>
Stream<T>stream()
Returns the current page of results as aStream
.<T extends Entity>
PanacheQuery<T>withBatchSize(int batchSize)
Define the batch size for this query.<T extends Entity>
PanacheQuery<T>withCollation(com.mongodb.client.model.Collation collation)
Define the collation used for this query.<T extends Entity>
PanacheQuery<T>withReadPreference(com.mongodb.ReadPreference readPreference)
Define the read preference used for this query.
-
-
-
Constructor Detail
-
PanacheQueryImpl
PanacheQueryImpl(com.mongodb.client.MongoCollection<? extends Entity> collection, com.mongodb.client.ClientSession session, org.bson.conversions.Bson mongoQuery, org.bson.conversions.Bson sort)
-
-
Method Detail
-
project
public <T> PanacheQuery<T> project(Class<T> type)
Description copied from interface:PanacheQuery
Defines a projection class: the getters, and the public fields, will be used to restrict which fields should be retrieved from the database.- Specified by:
project
in interfacePanacheQuery<Entity>
- Returns:
- a new query with the same state as the previous one (params, page, range, ...).
-
page
public <T extends Entity> PanacheQuery<T> page(Page page)
Description copied from interface:PanacheQuery
Sets the current page.- Specified by:
page
in interfacePanacheQuery<Entity>
- Parameters:
page
- the new page- Returns:
- this query, modified
- See Also:
PanacheQuery.page(int, int)
,PanacheQuery.page()
-
page
public <T extends Entity> PanacheQuery<T> page(int pageIndex, int pageSize)
Description copied from interface:PanacheQuery
Sets the current page.- Specified by:
page
in interfacePanacheQuery<Entity>
- Parameters:
pageIndex
- the page index (0-based)pageSize
- the page size- Returns:
- this query, modified
- See Also:
PanacheQuery.page(Page)
,PanacheQuery.page()
-
nextPage
public <T extends Entity> PanacheQuery<T> nextPage()
Description copied from interface:PanacheQuery
Sets the current page to the next page- Specified by:
nextPage
in interfacePanacheQuery<Entity>
- Returns:
- this query, modified
- See Also:
PanacheQuery.previousPage()
-
previousPage
public <T extends Entity> PanacheQuery<T> previousPage()
Description copied from interface:PanacheQuery
Sets the current page to the previous page (or the first page if there is no previous page)- Specified by:
previousPage
in interfacePanacheQuery<Entity>
- Returns:
- this query, modified
- See Also:
PanacheQuery.nextPage()
-
firstPage
public <T extends Entity> PanacheQuery<T> firstPage()
Description copied from interface:PanacheQuery
Sets the current page to the first page- Specified by:
firstPage
in interfacePanacheQuery<Entity>
- Returns:
- this query, modified
- See Also:
PanacheQuery.lastPage()
-
lastPage
public <T extends Entity> PanacheQuery<T> lastPage()
Description copied from interface:PanacheQuery
Sets the current page to the last page. This will cause reading of the entity count.- Specified by:
lastPage
in interfacePanacheQuery<Entity>
- Returns:
- this query, modified
- See Also:
PanacheQuery.firstPage()
,PanacheQuery.count()
-
hasNextPage
public boolean hasNextPage()
Description copied from interface:PanacheQuery
Returns true if there is another page to read after the current one. This will cause reading of the entity count.- Specified by:
hasNextPage
in interfacePanacheQuery<Entity>
- Returns:
- true if there is another page to read
- See Also:
PanacheQuery.hasPreviousPage()
,PanacheQuery.count()
-
hasPreviousPage
public boolean hasPreviousPage()
Description copied from interface:PanacheQuery
Returns true if there is a page to read before the current one.- Specified by:
hasPreviousPage
in interfacePanacheQuery<Entity>
- Returns:
- true if there is a previous page to read
- See Also:
PanacheQuery.hasNextPage()
-
pageCount
public int pageCount()
Description copied from interface:PanacheQuery
Returns the total number of pages to be read using the current page size. This will cause reading of the entity count.- Specified by:
pageCount
in interfacePanacheQuery<Entity>
- Returns:
- the total number of pages to be read using the current page size.
-
page
public Page page()
Description copied from interface:PanacheQuery
Returns the current page.- Specified by:
page
in interfacePanacheQuery<Entity>
- Returns:
- the current page
- See Also:
PanacheQuery.page(Page)
,PanacheQuery.page(int,int)
-
range
public <T extends Entity> PanacheQuery<T> range(int startIndex, int lastIndex)
Description copied from interface:PanacheQuery
Switch the query to use a fixed range (start index - last index) instead of a page. As the range is fixed, subsequent pagination of the query is not possible.- Specified by:
range
in interfacePanacheQuery<Entity>
- Parameters:
startIndex
- the index of the first element, starting at 0lastIndex
- the index of the last element- Returns:
- this query, modified
-
withCollation
public <T extends Entity> PanacheQuery<T> withCollation(com.mongodb.client.model.Collation collation)
Description copied from interface:PanacheQuery
Define the collation used for this query.- Specified by:
withCollation
in interfacePanacheQuery<Entity>
- Parameters:
collation
- the collation to be used for this query.- Returns:
- this query, modified
-
withReadPreference
public <T extends Entity> PanacheQuery<T> withReadPreference(com.mongodb.ReadPreference readPreference)
Description copied from interface:PanacheQuery
Define the read preference used for this query.- Specified by:
withReadPreference
in interfacePanacheQuery<Entity>
- Parameters:
readPreference
- the read preference to be used for this query.- Returns:
- this query, modified
-
withBatchSize
public <T extends Entity> PanacheQuery<T> withBatchSize(int batchSize)
Description copied from interface:PanacheQuery
Define the batch size for this query.- Specified by:
withBatchSize
in interfacePanacheQuery<Entity>
- Parameters:
batchSize
- the batch size to be used for this query.- Returns:
- this query, modified
-
count
public long count()
Description copied from interface:PanacheQuery
Reads and caches the total number of entities this query operates on. This causes a database query withSELECT COUNT(*)
and a query equivalent to the current query, minus ordering.- Specified by:
count
in interfacePanacheQuery<Entity>
- Returns:
- the total number of entities this query operates on, cached.
-
list
public <T extends Entity> List<T> list()
Description copied from interface:PanacheQuery
Returns the current page of results as aList
.- Specified by:
list
in interfacePanacheQuery<Entity>
- Returns:
- the current page of results as a
List
. - See Also:
PanacheQuery.stream()
,PanacheQuery.page(Page)
,PanacheQuery.page()
-
stream
public <T extends Entity> Stream<T> stream()
Description copied from interface:PanacheQuery
Returns the current page of results as aStream
.- Specified by:
stream
in interfacePanacheQuery<Entity>
- Returns:
- the current page of results as a
Stream
. - See Also:
PanacheQuery.list()
,PanacheQuery.page(Page)
,PanacheQuery.page()
-
firstResult
public <T extends Entity> T firstResult()
Description copied from interface:PanacheQuery
Returns the first result of the current page index. This ignores the current page size to fetch a single result.- Specified by:
firstResult
in interfacePanacheQuery<Entity>
- Returns:
- the first result of the current page index, or null if there are no results.
- See Also:
PanacheQuery.singleResult()
-
firstResultOptional
public <T extends Entity> Optional<T> firstResultOptional()
Description copied from interface:PanacheQuery
Returns the first result of the current page index. This ignores the current page size to fetch a single result.- Specified by:
firstResultOptional
in interfacePanacheQuery<Entity>
- Returns:
- if found, an optional containing the entity, else
Optional.empty()
. - See Also:
PanacheQuery.singleResultOptional()
-
singleResult
public <T extends Entity> T singleResult()
Description copied from interface:PanacheQuery
Executes this query for the current page and return a single result.- Specified by:
singleResult
in interfacePanacheQuery<Entity>
- Returns:
- the single result
- See Also:
PanacheQuery.firstResult()
-
singleResultOptional
public <T extends Entity> Optional<T> singleResultOptional()
Description copied from interface:PanacheQuery
Executes this query for the current page and return a single result.- Specified by:
singleResultOptional
in interfacePanacheQuery<Entity>
- Returns:
- if found, an optional containing the entity, else
Optional.empty()
. - See Also:
PanacheQuery.firstResultOptional()
-
-