Example usage for org.springframework.data.mongodb.core.mapping BasicMongoPersistentEntity getPersistentProperty

List of usage examples for org.springframework.data.mongodb.core.mapping BasicMongoPersistentEntity getPersistentProperty

Introduction

In this page you can find the example usage for org.springframework.data.mongodb.core.mapping BasicMongoPersistentEntity getPersistentProperty.

Prototype

@Nullable
P getPersistentProperty(String name);

Source Link

Document

Obtains a PersistentProperty instance by name.

Usage

From source file:com.avanza.ymer.MongoQueryFactory.java

/**
 * @param template Template object//from ww  w  .j  a v a  2  s.c om
 * @return A Spring mongo {@link Query}
 */
public Query createMongoQueryFromTemplate(Object template) {
    try {
        Criteria criteria = null;
        BasicMongoPersistentEntity<?> pe = mongoMappingContext.getPersistentEntity(template.getClass());
        for (PropertyDescriptor pd : getTemplatablePropertyDescriptors(template.getClass())) {
            Object objectValue = pd.getReadMethod().invoke(template);
            if (objectValue == null) {
                continue; // null == accept any value
            }

            String fieldName = pe.getPersistentProperty(pd.getName()).getFieldName();
            Object mongoValue = mongoConverter.convertToMongoType(objectValue);
            criteria = addCriteria(criteria, fieldName, mongoValue);
        }

        return criteria != null ? new Query(criteria) : new Query();
    } catch (Exception e) {
        throw new CouldNotCreateMongoQueryException(e);
    }
}