Package org.grails.datastore.bson.query
Class BsonQuery
- java.lang.Object
-
- org.grails.datastore.mapping.query.Query
-
- org.grails.datastore.bson.query.BsonQuery
-
- All Implemented Interfaces:
java.lang.Cloneable
public abstract class BsonQuery extends org.grails.datastore.mapping.query.QueryA base class for Query implementations that create BSON queries based on MongoDB query format. See https://docs.mongodb.com/manual/tutorial/query-documents/- Since:
- 6.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceBsonQuery.OperatorHandlerHandles query operators when reading BSONprotected static interfaceBsonQuery.ProjectionHandler<T extends org.grails.datastore.mapping.query.Query.Projection>Handles a projectionprotected static interfaceBsonQuery.QueryHandler<T>Handles an individual criterion-
Nested classes/interfaces inherited from class org.grails.datastore.mapping.query.Query
org.grails.datastore.mapping.query.Query.AvgProjection, org.grails.datastore.mapping.query.Query.Between, org.grails.datastore.mapping.query.Query.Conjunction, org.grails.datastore.mapping.query.Query.CountDistinctProjection, org.grails.datastore.mapping.query.Query.CountProjection, org.grails.datastore.mapping.query.Query.Criterion, org.grails.datastore.mapping.query.Query.Disjunction, org.grails.datastore.mapping.query.Query.DistinctProjection, org.grails.datastore.mapping.query.Query.DistinctPropertyProjection, org.grails.datastore.mapping.query.Query.Equals, org.grails.datastore.mapping.query.Query.EqualsAll, org.grails.datastore.mapping.query.Query.EqualsProperty, org.grails.datastore.mapping.query.Query.Exists, org.grails.datastore.mapping.query.Query.GreaterThan, org.grails.datastore.mapping.query.Query.GreaterThanAll, org.grails.datastore.mapping.query.Query.GreaterThanEquals, org.grails.datastore.mapping.query.Query.GreaterThanEqualsAll, org.grails.datastore.mapping.query.Query.GreaterThanEqualsProperty, org.grails.datastore.mapping.query.Query.GreaterThanEqualsSome, org.grails.datastore.mapping.query.Query.GreaterThanProperty, org.grails.datastore.mapping.query.Query.GreaterThanSome, org.grails.datastore.mapping.query.Query.GroupPropertyProjection, org.grails.datastore.mapping.query.Query.IdEquals, org.grails.datastore.mapping.query.Query.IdProjection, org.grails.datastore.mapping.query.Query.ILike, org.grails.datastore.mapping.query.Query.In, org.grails.datastore.mapping.query.Query.IsEmpty, org.grails.datastore.mapping.query.Query.IsNotEmpty, org.grails.datastore.mapping.query.Query.IsNotNull, org.grails.datastore.mapping.query.Query.IsNull, org.grails.datastore.mapping.query.Query.Junction, org.grails.datastore.mapping.query.Query.LessThan, org.grails.datastore.mapping.query.Query.LessThanAll, org.grails.datastore.mapping.query.Query.LessThanEquals, org.grails.datastore.mapping.query.Query.LessThanEqualsAll, org.grails.datastore.mapping.query.Query.LessThanEqualsProperty, org.grails.datastore.mapping.query.Query.LessThanEqualsSome, org.grails.datastore.mapping.query.Query.LessThanProperty, org.grails.datastore.mapping.query.Query.LessThanSome, org.grails.datastore.mapping.query.Query.Like, org.grails.datastore.mapping.query.Query.MaxProjection, org.grails.datastore.mapping.query.Query.MinProjection, org.grails.datastore.mapping.query.Query.Negation, org.grails.datastore.mapping.query.Query.NotEquals, org.grails.datastore.mapping.query.Query.NotEqualsAll, org.grails.datastore.mapping.query.Query.NotEqualsProperty, org.grails.datastore.mapping.query.Query.NotExists, org.grails.datastore.mapping.query.Query.NotIn, org.grails.datastore.mapping.query.Query.Order, org.grails.datastore.mapping.query.Query.Projection, org.grails.datastore.mapping.query.Query.ProjectionList, org.grails.datastore.mapping.query.Query.PropertyComparisonCriterion, org.grails.datastore.mapping.query.Query.PropertyCriterion, org.grails.datastore.mapping.query.Query.PropertyNameCriterion, org.grails.datastore.mapping.query.Query.PropertyProjection, org.grails.datastore.mapping.query.Query.RLike, org.grails.datastore.mapping.query.Query.SizeEquals, org.grails.datastore.mapping.query.Query.SizeGreaterThan, org.grails.datastore.mapping.query.Query.SizeGreaterThanEquals, org.grails.datastore.mapping.query.Query.SizeLessThan, org.grails.datastore.mapping.query.Query.SizeLessThanEquals, org.grails.datastore.mapping.query.Query.SizeNotEquals, org.grails.datastore.mapping.query.Query.SubqueryCriterion, org.grails.datastore.mapping.query.Query.SumProjection
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringAND_OPERATORstatic java.lang.StringAVERAGE_OPERATORstatic org.bson.codecs.EncoderContextENCODER_CONTEXTstatic java.lang.StringEQ_OPERATORstatic java.lang.StringEXISTS_OPERATORstatic java.lang.StringGROUP_OPERATORprotected static java.util.Map<java.lang.Class,BsonQuery.ProjectionHandler>groupByProjectionHandlersstatic java.lang.StringGT_OPERATORstatic java.lang.StringGTE_OPERATORstatic java.lang.StringID_REFERENCE_SUFFIXstatic java.lang.StringIN_OPERATORstatic java.lang.StringLT_OPERATORstatic java.lang.StringLTE_OPERATORstatic java.lang.StringMATCH_OPERATORstatic java.lang.StringMAX_OPERATORstatic java.lang.StringMIN_OPERATORstatic java.lang.StringNE_OPERATORstatic java.lang.StringNIN_OPERATORstatic java.lang.StringNOR_OPERATORstatic java.lang.StringNOT_OPERATORprotected static java.util.Map<java.lang.String,BsonQuery.OperatorHandler>operatorHandlersstatic java.lang.StringOR_OPERATORstatic java.lang.StringPROJECT_OPERATORprotected static java.util.Map<java.lang.Class,BsonQuery.ProjectionHandler>projectProjectionHandlersprotected static java.util.Map<java.lang.Class,BsonQuery.QueryHandler>queryHandlersstatic java.lang.StringREGEX_OPERATORstatic java.lang.StringSIZE_OPERATORstatic java.lang.StringSORT_OPERATORstatic java.lang.StringSUM_OPERATORstatic java.lang.StringWHERE_OPERATOR
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.bson.DocumentcreateBsonQuery(org.bson.codecs.configuration.CodecRegistry registry, org.grails.datastore.mapping.model.PersistentEntity entity, java.util.List<org.grails.datastore.mapping.query.Query.Criterion> criteria)Creates a new query for the given registry, entity and criteriastatic org.bson.DocumentcreateBsonQuery(org.bson.codecs.configuration.CodecRegistry registry, org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.Junction junction)Creates a new query for the given registry, entity and criteriaprotected static java.util.List<java.lang.Object>getInListQueryValues(org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.In in)Get the list of native values to use in the query.protected static org.bson.DocumentgetOrCreatePropertyQuery(org.bson.Document query, java.lang.String propertyName)protected static java.lang.StringgetPropertyName(org.grails.datastore.mapping.model.PersistentEntity entity, java.lang.String propertyName)protected static java.lang.StringgetPropertyName(org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.PropertyNameCriterion criterion)static <T> grails.gorm.DetachedCriteria<T>parse(java.lang.Class<T> type, org.bson.BsonReader queryReader)Parse a query from a BsonReader into a DetachedCriteriaprotected static voidpopulateBsonQuery(EmbeddedQueryEncoder queryEncoder, org.bson.Document query, java.util.List<org.grails.datastore.mapping.query.Query.Criterion> criteria, org.grails.datastore.mapping.model.PersistentEntity entity)protected static voidpopulateBsonQuery(EmbeddedQueryEncoder queryEncoder, org.bson.Document query, org.grails.datastore.mapping.query.Query.Junction criteria, org.grails.datastore.mapping.model.PersistentEntity entity)protected static java.lang.ObjectreadBsonValue(org.bson.BsonReader queryReader, org.bson.BsonType bsonType)-
Methods inherited from class org.grails.datastore.mapping.query.Query
add, add, allEq, and, between, cache, clone, conjunction, createQuery, disjunction, eq, executeQuery, fetchStrategy, firstResult, flushBeforeQuery, ge, getCriteria, getEntity, getOrderBy, getSession, gt, gte, idEq, ilike, in, isEmpty, isNotEmpty, isNotNull, isNull, join, join, le, like, list, lock, lock, lt, lte, max, maxResults, negation, offset, or, order, patternToRegex, projections, resolveIdIfEntity, rlike, select, setUniqueResult, singleResult
-
-
-
-
Field Detail
-
PROJECT_OPERATOR
public static final java.lang.String PROJECT_OPERATOR
- See Also:
- Constant Field Values
-
SORT_OPERATOR
public static final java.lang.String SORT_OPERATOR
- See Also:
- Constant Field Values
-
IN_OPERATOR
public static final java.lang.String IN_OPERATOR
- See Also:
- Constant Field Values
-
OR_OPERATOR
public static final java.lang.String OR_OPERATOR
- See Also:
- Constant Field Values
-
AND_OPERATOR
public static final java.lang.String AND_OPERATOR
- See Also:
- Constant Field Values
-
GTE_OPERATOR
public static final java.lang.String GTE_OPERATOR
- See Also:
- Constant Field Values
-
LTE_OPERATOR
public static final java.lang.String LTE_OPERATOR
- See Also:
- Constant Field Values
-
GT_OPERATOR
public static final java.lang.String GT_OPERATOR
- See Also:
- Constant Field Values
-
LT_OPERATOR
public static final java.lang.String LT_OPERATOR
- See Also:
- Constant Field Values
-
NE_OPERATOR
public static final java.lang.String NE_OPERATOR
- See Also:
- Constant Field Values
-
EQ_OPERATOR
public static final java.lang.String EQ_OPERATOR
- See Also:
- Constant Field Values
-
NIN_OPERATOR
public static final java.lang.String NIN_OPERATOR
- See Also:
- Constant Field Values
-
REGEX_OPERATOR
public static final java.lang.String REGEX_OPERATOR
- See Also:
- Constant Field Values
-
MATCH_OPERATOR
public static final java.lang.String MATCH_OPERATOR
- See Also:
- Constant Field Values
-
AVERAGE_OPERATOR
public static final java.lang.String AVERAGE_OPERATOR
- See Also:
- Constant Field Values
-
GROUP_OPERATOR
public static final java.lang.String GROUP_OPERATOR
- See Also:
- Constant Field Values
-
SUM_OPERATOR
public static final java.lang.String SUM_OPERATOR
- See Also:
- Constant Field Values
-
MIN_OPERATOR
public static final java.lang.String MIN_OPERATOR
- See Also:
- Constant Field Values
-
MAX_OPERATOR
public static final java.lang.String MAX_OPERATOR
- See Also:
- Constant Field Values
-
SIZE_OPERATOR
public static final java.lang.String SIZE_OPERATOR
- See Also:
- Constant Field Values
-
NOT_OPERATOR
public static final java.lang.String NOT_OPERATOR
- See Also:
- Constant Field Values
-
NOR_OPERATOR
public static final java.lang.String NOR_OPERATOR
- See Also:
- Constant Field Values
-
EXISTS_OPERATOR
public static final java.lang.String EXISTS_OPERATOR
- See Also:
- Constant Field Values
-
WHERE_OPERATOR
public static final java.lang.String WHERE_OPERATOR
- See Also:
- Constant Field Values
-
ENCODER_CONTEXT
public static final org.bson.codecs.EncoderContext ENCODER_CONTEXT
-
ID_REFERENCE_SUFFIX
public static final java.lang.String ID_REFERENCE_SUFFIX
- See Also:
- Constant Field Values
-
queryHandlers
protected static java.util.Map<java.lang.Class,BsonQuery.QueryHandler> queryHandlers
-
operatorHandlers
protected static java.util.Map<java.lang.String,BsonQuery.OperatorHandler> operatorHandlers
-
groupByProjectionHandlers
protected static java.util.Map<java.lang.Class,BsonQuery.ProjectionHandler> groupByProjectionHandlers
-
projectProjectionHandlers
protected static java.util.Map<java.lang.Class,BsonQuery.ProjectionHandler> projectProjectionHandlers
-
-
Method Detail
-
createBsonQuery
public static org.bson.Document createBsonQuery(org.bson.codecs.configuration.CodecRegistry registry, org.grails.datastore.mapping.model.PersistentEntity entity, java.util.List<org.grails.datastore.mapping.query.Query.Criterion> criteria)Creates a new query for the given registry, entity and criteria- Parameters:
registry- The registryentity- The entitycriteria- The criteria- Returns:
- The query
-
createBsonQuery
public static org.bson.Document createBsonQuery(org.bson.codecs.configuration.CodecRegistry registry, org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.Junction junction)Creates a new query for the given registry, entity and criteria- Parameters:
registry- The registryentity- The entityjunction- The junction- Returns:
- The query
-
parse
public static <T> grails.gorm.DetachedCriteria<T> parse(java.lang.Class<T> type, org.bson.BsonReader queryReader)Parse a query from a BsonReader into a DetachedCriteria- Type Parameters:
T- The entity concrete type- Parameters:
type- The entity typequeryReader- The query reader- Returns:
- A
DetachedCriteria
-
readBsonValue
protected static java.lang.Object readBsonValue(org.bson.BsonReader queryReader, org.bson.BsonType bsonType)
-
getPropertyName
protected static java.lang.String getPropertyName(org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.PropertyNameCriterion criterion)
-
getPropertyName
protected static java.lang.String getPropertyName(org.grails.datastore.mapping.model.PersistentEntity entity, java.lang.String propertyName)
-
getInListQueryValues
protected static java.util.List<java.lang.Object> getInListQueryValues(org.grails.datastore.mapping.model.PersistentEntity entity, org.grails.datastore.mapping.query.Query.In in)Get the list of native values to use in the query. This converts entities to ids and other types to their persisted types.- Parameters:
entity- The entityin- The criterion- Returns:
- The list of native values suitable for passing to Mongo.
-
getOrCreatePropertyQuery
protected static org.bson.Document getOrCreatePropertyQuery(org.bson.Document query, java.lang.String propertyName)
-
populateBsonQuery
protected static void populateBsonQuery(EmbeddedQueryEncoder queryEncoder, org.bson.Document query, java.util.List<org.grails.datastore.mapping.query.Query.Criterion> criteria, org.grails.datastore.mapping.model.PersistentEntity entity)
-
populateBsonQuery
protected static void populateBsonQuery(EmbeddedQueryEncoder queryEncoder, org.bson.Document query, org.grails.datastore.mapping.query.Query.Junction criteria, org.grails.datastore.mapping.model.PersistentEntity entity)
-
-