title: spring.data.mongodb upgrade causes InvalidPersistentPropertyPath exception
body: <p>We are trying to upgrade the following dependencies in our project:</p>
  
  <ul>
  <li>spring.data.mongodb: from 1.1.0.RELEASE to 1.8.2.RELEASE</li>
  <li>org.mongo.driver: from 2.12.3 to 2.14.1</li>
  </ul>
  
  <p>but are encountering a problem with DBObject mapping with something that worked in the older versions.</p>
  
  <p>simplified code:</p>
  
  <p><strong>DevicePojo.java</strong></p>
  
  <pre><code>@Id
  private String _id;
  private Long appID;
  private String UDIDHashed;
  
  ** getters/setters **
  </code></pre>
  
  <p><strong>DeviceRepositoryImpl.java</strong></p>
  
  <pre><code>public DevicePojo getDeviceByAppIdAndUDIDHashed(Long applicationId, String udidHashed){
      Criteria criteriaAppId = Criteria.where("appID").is(applicationId);
      Criteria criteriaUDIDHashed = Criteria.where("UDIDHashed").is(udidHashed);
      Criteria criteria = new Criteria();
      criteria.andOperator(criteriaAppId, criteriaUDIDHashed);
      Query query = Query.query(criteria);
      return findOne(query);
  }
  </code></pre>
  
  <p><strong>Exception thrown:</strong></p>
  
  <pre><code>org.springframework.data.mapping.context.InvalidPersistentPropertyPath: No property uDIDHashed found on com.appoxee.server.data.mongo.pojo.DevicePojo!
          at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentPropertyPath(AbstractMappingContext.java:256)
          at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentPropertyPath(AbstractMappingContext.java:229)
          at org.springframework.data.mapping.context.AbstractMappingContext.getPersistentPropertyPath(AbstractMappingContext.java:204)
          at org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.getPath(QueryMapper.java:838)
          at org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.&lt;init&gt;(QueryMapper.java:729)
          at org.springframework.data.mongodb.core.convert.QueryMapper$MetadataBackedField.&lt;init&gt;(QueryMapper.java:706)
          at org.springframework.data.mongodb.core.convert.QueryMapper.createPropertyField(QueryMapper.java:216)
          at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:122)
          at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedKeyword(QueryMapper.java:235)
          at org.springframework.data.mongodb.core.convert.QueryMapper.getMappedObject(QueryMapper.java:100)
          at org.springframework.data.mongodb.core.MongoTemplate.doFindOne(MongoTemplate.java:1664)
          at org.springframework.data.mongodb.core.MongoTemplate.findOne(MongoTemplate.java:564)
          at org.springframework.data.mongodb.core.MongoTemplate.findOne(MongoTemplate.java:559)
          at com.appoxee.server.data.mongo.dao.DeviceRepositoryImpl.findOne(DeviceRepositoryImpl.java:41)
          at com.appoxee.server.data.mongo.dao.DeviceRepositoryImpl.getDeviceByAppIdAndUDIDHashed(DeviceRepositoryImpl.java:205)
  </code></pre>
  
  <p>We tried annotating the UDIDHashed field with @Field(value = "UDIDHashed"), as well as @Column(name = "UDIDHashed"), but for some reason it keeps changing the first character to lowercase. Only similar thing regarding this I could find is a bug regarding uppercase field annotated as @Id, but that is supposedly fixed since spring.data.mongodb version 1.5.0.</p>