public String getIdAttribute() { return entityMetadata.getRequiredIdProperty().getName(); }
@Override public boolean isIdField() { MongoPersistentProperty idProperty = (property != null && property.isIdProperty()) ? property : entity.getIdProperty(); if (idProperty != null) { return name.equals(idProperty.getName()) || name.equals(idProperty.getFieldName()) || name.endsWith("." + idProperty.getName()) || name.endsWith("." + idProperty.getFieldName()); } return DEFAULT_ID_NAMES.contains(name); }
/** * Returns the name of the identifier property. Considers mapping information but falls back to the MongoDB default of * {@code _id} if no identifier property can be found. * * @param type must not be {@literal null}. * @return */ public String getIdPropertyName(Class<?> type) { Assert.notNull(type, "Type must not be null!"); MongoPersistentEntity<?> persistentEntity = context.getPersistentEntity(type); if (persistentEntity != null && persistentEntity.getIdProperty() != null) { return persistentEntity.getRequiredIdProperty().getName(); } return ID_FIELD; }
private String getMappedPropertyPath(String path, Class<?> probeType) { MongoPersistentEntity<?> entity = mappingContext.getRequiredPersistentEntity(probeType); Iterator<String> parts = Arrays.asList(path.split("\\.")).iterator(); final Stack<MongoPersistentProperty> stack = new Stack<>(); List<String> resultParts = new ArrayList<>(); while (parts.hasNext()) { String part = parts.next(); MongoPersistentProperty prop = entity.getPersistentProperty(part); if (prop == null) { entity.doWithProperties((PropertyHandler<MongoPersistentProperty>) property -> { if (property.getFieldName().equals(part)) { stack.push(property); } }); if (stack.isEmpty()) { return ""; } prop = stack.pop(); } resultParts.add(prop.getName()); if (prop.isEntity() && mappingContext.hasPersistentEntityFor(prop.getActualType())) { entity = mappingContext.getRequiredPersistentEntity(prop.getActualType()); } else { break; } } return StringUtils.collectionToDelimitedString(resultParts, "."); }
@Override public Query getQueryForVersion() { MongoPersistentProperty idProperty = entity.getRequiredIdProperty(); MongoPersistentProperty property = entity.getRequiredVersionProperty(); return new Query(Criteria.where(idProperty.getName()).is(getId())// .and(property.getName()).is(getVersion())); }
@Override public Query getByIdQuery() { if (!entity.hasIdProperty()) { throw new MappingException("No id property found for object of type " + entity.getType() + "!"); } MongoPersistentProperty idProperty = entity.getRequiredIdProperty(); return Query.query(Criteria.where(idProperty.getName()).is(getId())); }
public String getIdAttribute() { return entityMetadata.getRequiredIdProperty().getName(); }
@Override public boolean isIdField() { MongoPersistentProperty idProperty = (property != null && property.isIdProperty()) ? property : entity.getIdProperty(); if (idProperty != null) { return name.equals(idProperty.getName()) || name.equals(idProperty.getFieldName()) || name.endsWith("." + idProperty.getName()) || name.endsWith("." + idProperty.getFieldName()); } return DEFAULT_ID_NAMES.contains(name); }
/** * Returns the name of the identifier property. Considers mapping information but falls back to the MongoDB default of * {@code _id} if no identifier property can be found. * * @param type must not be {@literal null}. * @return */ public String getIdPropertyName(Class<?> type) { Assert.notNull(type, "Type must not be null!"); MongoPersistentEntity<?> persistentEntity = context.getPersistentEntity(type); if (persistentEntity != null && persistentEntity.getIdProperty() != null) { return persistentEntity.getRequiredIdProperty().getName(); } return ID_FIELD; }
private String getMappedPropertyPath(String path, Class<?> probeType) { MongoPersistentEntity<?> entity = mappingContext.getRequiredPersistentEntity(probeType); Iterator<String> parts = Arrays.asList(path.split("\\.")).iterator(); final Stack<MongoPersistentProperty> stack = new Stack<>(); List<String> resultParts = new ArrayList<>(); while (parts.hasNext()) { String part = parts.next(); MongoPersistentProperty prop = entity.getPersistentProperty(part); if (prop == null) { entity.doWithProperties((PropertyHandler<MongoPersistentProperty>) property -> { if (property.getFieldName().equals(part)) { stack.push(property); } }); if (stack.isEmpty()) { return ""; } prop = stack.pop(); } resultParts.add(prop.getName()); if (prop.isEntity() && mappingContext.hasPersistentEntityFor(prop.getActualType())) { entity = mappingContext.getRequiredPersistentEntity(prop.getActualType()); } else { break; } } return StringUtils.collectionToDelimitedString(resultParts, "."); }
@Override public Query getQueryForVersion() { MongoPersistentProperty idProperty = entity.getRequiredIdProperty(); MongoPersistentProperty property = entity.getRequiredVersionProperty(); return new Query(Criteria.where(idProperty.getName()).is(getId())// .and(property.getName()).is(getVersion())); }
@Override public Query getByIdQuery() { if (!entity.hasIdProperty()) { throw new MappingException("No id property found for object of type " + entity.getType() + "!"); } MongoPersistentProperty idProperty = entity.getRequiredIdProperty(); return Query.query(Criteria.where(idProperty.getName()).is(getId())); }
/** * Get the basic services from mongo template */ private synchronized void fetchMappingContextAndConversionService() { if(mappingContext == null) { MongoConverter mongoConverter = this.mongoTemplate.getConverter(); mappingContext = mongoConverter.getMappingContext(); conversionService = mongoConverter.getConversionService(); MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(entityClass); MongoPersistentProperty idProperty = persistentEntity.getIdProperty(); this.idKey = idProperty == null ? "_id" : idProperty.getName(); } }
/** * Get the basic services from mongo template */ private synchronized void fetchMappingContextAndConversionService() { if(mappingContext == null) { MongoConverter mongoConverter = this.mongoTemplate.getConverter(); mappingContext = mongoConverter.getMappingContext(); conversionService = mongoConverter.getConversionService(); MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(entityClass); MongoPersistentProperty idProperty = persistentEntity.getIdProperty(); this.idKey = idProperty == null ? "_id" : idProperty.getName(); } }