Search in sources :

Example 1 with Field

use of org.springframework.data.mongodb.core.query.Field in project spring-data-mongodb by spring-projects.

the class PartTreeMongoQuery method createQuery.

/*
	 * (non-Javadoc)
	 * @see org.springframework.data.mongodb.repository.query.AbstractMongoQuery#createQuery(org.springframework.data.mongodb.repository.query.ConvertingParameterAccessor, boolean)
	 */
@Override
protected Query createQuery(ConvertingParameterAccessor accessor) {
    MongoQueryCreator creator = new MongoQueryCreator(tree, accessor, context, isGeoNearQuery);
    Query query = creator.createQuery();
    if (tree.isLimiting()) {
        query.limit(tree.getMaxResults());
    }
    TextCriteria textCriteria = accessor.getFullText();
    if (textCriteria != null) {
        query.addCriteria(textCriteria);
    }
    String fieldSpec = this.getQueryMethod().getFieldSpecification();
    if (!StringUtils.hasText(fieldSpec)) {
        ReturnedType returnedType = processor.withDynamicProjection(accessor).getReturnedType();
        if (returnedType.needsCustomConstruction()) {
            Field fields = query.fields();
            for (String field : returnedType.getInputProperties()) {
                fields.include(field);
            }
        }
        return query;
    }
    try {
        BasicQuery result = new BasicQuery(query.getQueryObject(), Document.parse(fieldSpec));
        result.setSortObject(query.getSortObject());
        return result;
    } catch (JsonParseException o_O) {
        throw new IllegalStateException(String.format("Invalid query or field specification in %s!", getQueryMethod()), o_O);
    }
}
Also used : Field(org.springframework.data.mongodb.core.query.Field) BasicQuery(org.springframework.data.mongodb.core.query.BasicQuery) Query(org.springframework.data.mongodb.core.query.Query) RepositoryQuery(org.springframework.data.repository.query.RepositoryQuery) TextCriteria(org.springframework.data.mongodb.core.query.TextCriteria) BasicQuery(org.springframework.data.mongodb.core.query.BasicQuery) ReturnedType(org.springframework.data.repository.query.ReturnedType) JsonParseException(org.bson.json.JsonParseException)

Aggregations

JsonParseException (org.bson.json.JsonParseException)1 BasicQuery (org.springframework.data.mongodb.core.query.BasicQuery)1 Field (org.springframework.data.mongodb.core.query.Field)1 Query (org.springframework.data.mongodb.core.query.Query)1 TextCriteria (org.springframework.data.mongodb.core.query.TextCriteria)1 RepositoryQuery (org.springframework.data.repository.query.RepositoryQuery)1 ReturnedType (org.springframework.data.repository.query.ReturnedType)1