private EntityPropertyBinding buildEntityProperty(Field simpleField, String parentProperty) { EntityPropertyBinding entityProperty = new EntityPropertyBinding(); Property propertyAnnotation = simpleField.getAnnotation(Property.class); if (propertyAnnotation == null) { // Mapping store column doesn't exist for field, consider it as non store property. // should we consider property name as store field name in absence of annotation???? // entityProperty.setStoreFieldName(simpleField.getName()); return null; } entityProperty.setStoreFieldName(propertyAnnotation.value()); entityProperty.setName(simpleField.getName()); entityProperty.setType(simpleField.getType()); StringBuilder nameBuilder = new StringBuilder(); if (StringUtils.isNotEmpty(parentProperty)) { nameBuilder.append(parentProperty).append(PROPERTY_SEPARATOR); } nameBuilder.append(simpleField.getName()); entityProperty.setNameFullPath(nameBuilder.toString()); return entityProperty; }