Class BsonQuery

  • All Implemented Interfaces:
    java.lang.Cloneable

    public abstract class BsonQuery
    extends org.grails.datastore.mapping.query.Query
    A 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 interface  BsonQuery.OperatorHandler
      Handles query operators when reading BSON
      protected static interface  BsonQuery.ProjectionHandler<T extends org.grails.datastore.mapping.query.Query.Projection>
      Handles a projection
      protected static interface  BsonQuery.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
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected BsonQuery​(org.grails.datastore.mapping.core.Session session, org.grails.datastore.mapping.model.PersistentEntity entity)  
      protected BsonQuery​(org.grails.datastore.mapping.model.PersistentEntity entity)  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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
      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
      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.
      protected static org.bson.Document getOrCreatePropertyQuery​(org.bson.Document query, java.lang.String propertyName)  
      protected static java.lang.String getPropertyName​(org.grails.datastore.mapping.model.PersistentEntity entity, java.lang.String propertyName)  
      protected static java.lang.String getPropertyName​(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 DetachedCriteria
      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)  
      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)  
      protected static java.lang.Object readBsonValue​(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
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BsonQuery

        protected BsonQuery​(org.grails.datastore.mapping.core.Session session,
                            org.grails.datastore.mapping.model.PersistentEntity entity)
      • BsonQuery

        protected BsonQuery​(org.grails.datastore.mapping.model.PersistentEntity entity)
    • 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 registry
        entity - The entity
        criteria - 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 registry
        entity - The entity
        junction - 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 type
        queryReader - 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 entity
        in - 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)