## Uses of Interface
org.springframework.data.mapping.PersistentProperty

Packages that use PersistentProperty
org.springframework.data.auditing: General support for entity auditing.
org.springframework.data.convert: General purpose conversion framework to read objects from a data store abstraction and write it back.
org.springframework.data.mapping: Base package for the mapping subsystem.
org.springframework.data.mapping.context: Mapping context API and implementation base classes.
org.springframework.data.mapping.model: Core implementation of the mapping subsystem's model.
org.springframework.data.repository.core.support: Base classes to implement repositories for various data stores.

### Uses of PersistentProperty in org.springframework.data.auditing

Constructor parameters in org.springframework.data.auditing with type arguments of type PersistentProperty
Constructor and Description
`AuditingHandler(MappingContext<? extends PersistentEntity<?,?>,? extends PersistentProperty<?>> mappingContext)` Deprecated. use `AuditingHandler.AuditingHandler(PersistentEntities)` instead.
`IsNewAwareAuditingHandler(MappingContext<? extends PersistentEntity<?,?>,? extends PersistentProperty<?>> mappingContext)` Deprecated. use `IsNewAwareAuditingHandler.IsNewAwareAuditingHandler(PersistentEntities)` instead.

### Uses of PersistentProperty in org.springframework.data.convert

Classes in org.springframework.data.convert with type parameters of type PersistentProperty
`interface` `EntityConverter<E extends PersistentEntity<?,P>,P extends PersistentProperty<P>,T,S>` Combined `EntityReader` and `EntityWriter` and add the ability to access a `MappingContext` and `ConversionService`.

Methods in org.springframework.data.convert with type parameters of type PersistentProperty
`<T,E extends PersistentEntity<? extends T,P>,P extends PersistentProperty<P>> T` ClassGeneratingEntityInstantiator.`createInstance(E entity, ParameterValueProvider<P> provider)` Deprecated.
`<T,E extends PersistentEntity<? extends T,P>,P extends PersistentProperty<P>> T` KotlinClassGeneratingEntityInstantiator.`createInstance(E entity, ParameterValueProvider<P> provider)` Deprecated.
`<T,E extends PersistentEntity<? extends T,P>,P extends PersistentProperty<P>> T` ReflectionEntityInstantiator.`createInstance(E entity, ParameterValueProvider<P> provider)` Deprecated.

### Uses of PersistentProperty in org.springframework.data.mapping

Classes in org.springframework.data.mapping with type parameters of type PersistentProperty
`class` `Association<P extends PersistentProperty<P>>` Value object to capture `Association`s.
`interface` `AssociationHandler<P extends PersistentProperty<P>>` Callback interface to implement functionality to be applied to a collection of `Association`s.
`interface` `PersistentEntity<T,P extends PersistentProperty<P>>` Represents a persistent entity.
`interface` `PersistentProperty<P extends PersistentProperty<P>>`
`interface` `PersistentPropertyPath<P extends PersistentProperty<P>>` Abstraction of a path of `PersistentProperty`s.
`interface` `PersistentPropertyPaths<T,P extends PersistentProperty<P>>` A wrapper for a collection of `PersistentPropertyPath`s.
`class` `PreferredConstructor<T,P extends PersistentProperty<P>>` Value object to encapsulate the constructor to be used when mapping persistent data to objects.
`static class` `PreferredConstructor.Parameter<T,P extends PersistentProperty<P>>` Value object to represent constructor parameters.
`interface` `PropertyHandler<P extends PersistentProperty<P>>` Callback interface to do something with all plain `PersistentProperty` instances except associations and transient properties.

Methods in org.springframework.data.mapping with parameters of type PersistentProperty
`void` SimplePropertyHandler.`doWithPersistentProperty(PersistentProperty<?> property)` Handle the given `PersistentProperty`.
`Object` PersistentPropertyAccessor.`getProperty(PersistentProperty<?> property)` Returns the value of the given `PersistentProperty` of the underlying bean instance.
`boolean` PersistentEntity.`isConstructorArgument(PersistentProperty<?> property)` Returns whether the given `PersistentProperty` is referred to by a constructor argument of the `PersistentEntity`.
`boolean` PreferredConstructor.`isConstructorParameter(PersistentProperty<?> property)` Returns whether the given `PersistentProperty` is referenced in a constructor argument of the `PersistentEntity` backing this `PreferredConstructor`.
`boolean` PersistentEntity.`isIdProperty(PersistentProperty<?> property)` Returns whether the given `PersistentProperty` is the id property of the entity.
`boolean` PersistentEntity.`isVersionProperty(PersistentProperty<?> property)` Returns whether the given `PersistentProperty` is the version property of the entity.
`boolean` AccessOptions.SetOptions.`propagate(PersistentProperty<?> property)` Returns whether the given property is supposed to be propagated, i.e. if values for it are supposed to be set at all.
`TraversalContext` TraversalContext.`registerCollectionHandler(PersistentProperty<?> property, Function<? super Collection<?>,Object> handler)` Registers a `Function` to handle `Collection` values for the given property.
`AccessOptions.GetOptions` AccessOptions.GetOptions.`registerCollectionHandler(PersistentProperty<?> property, Function<? super Collection<?>,Object> handler)` Registers a `Function` to handle `Collection` values for the given property.
`<T> TraversalContext` TraversalContext.`registerHandler(PersistentProperty<?> property, Class<T> type, Function<? super T,Object> handler)` Registers the given `Function` to post-process values obtained for the given `PersistentProperty` for the given type.
`<T> AccessOptions.GetOptions` AccessOptions.GetOptions.`registerHandler(PersistentProperty<?> property, Class<T> type, Function<? super T,Object> handler)` Registers the given `Function` to post-process values obtained for the given `PersistentProperty` for the given type.
`TraversalContext` TraversalContext.`registerHandler(PersistentProperty<?> property, Function<Object,Object> handler)` Registers a `Function` to post-process values for the given property.
`AccessOptions.GetOptions` AccessOptions.GetOptions.`registerHandler(PersistentProperty<?> property, Function<Object,Object> handler)` Registers a `Function` to post-process values for the given property.
`TraversalContext` TraversalContext.`registerListHandler(PersistentProperty<?> property, Function<? super List<?>,Object> handler)` Registers a `Function` to handle `List` values for the given property.
`AccessOptions.GetOptions` AccessOptions.GetOptions.`registerListHandler(PersistentProperty<?> property, Function<? super List<?>,Object> handler)` Registers a `Function` to handle `List` values for the given property.
`TraversalContext` TraversalContext.`registerMapHandler(PersistentProperty<?> property, Function<? super Map<?,?>,Object> handler)` Registers a `Function` to handle `Map` values for the given property.
`AccessOptions.GetOptions` AccessOptions.GetOptions.`registerMapHandler(PersistentProperty<?> property, Function<? super Map<?,?>,Object> handler)` Registers a `Function` to handle `Map` values for the given property.
`TraversalContext` TraversalContext.`registerSetHandler(PersistentProperty<?> property, Function<? super Set<?>,Object> handler)` Registers a `Function` to handle `Set` values for the given property.
`AccessOptions.GetOptions` AccessOptions.GetOptions.`registerSetHandler(PersistentProperty<?> property, Function<? super Set<?>,Object> handler)` Registers a `Function` to handle `Set` values for the given property.
`void` PersistentPropertyAccessor.`setProperty(PersistentProperty<?> property, Object value)` Sets the given `PersistentProperty` to the given value.

Method parameters in org.springframework.data.mapping with type arguments of type PersistentProperty
`void` SimpleAssociationHandler.`doWithAssociation(Association<? extends PersistentProperty<?>> association)` Handle the given `Association`.
`default Object` PersistentPropertyPathAccessor.`getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path)` Return the value pointed to by the given `PersistentPropertyPath`.
`default Object` PersistentPropertyAccessor.`getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path)` Deprecated. since 2.3, use `PersistentPropertyPathAccessor.getProperty(PersistentPropertyPath)` instead
`Object` PersistentPropertyPathAccessor.`getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, AccessOptions.GetOptions context)` Return the value pointed to by the given `PersistentPropertyPath`.
`default Object` PersistentPropertyAccessor.`getProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, TraversalContext context)` Deprecated. since 2.3, use `PersistentPropertyPathAccessor.getProperty(PersistentPropertyPath, org.springframework.data.mapping.AccessOptions.GetOptions)` instead.
`void` PersistentPropertyPathAccessor.`setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value)` Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath`.
`default void` PersistentPropertyAccessor.`setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value)` Deprecated. since 2.3, use `PersistentPropertyPathAccessor.setProperty(PersistentPropertyPath, Object)` instead.
`void` PersistentPropertyPathAccessor.`setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value, AccessOptions.SetOptions options)` Sets the given value for the `PersistentProperty` pointed to by the given `PersistentPropertyPath` considering the given `AccessOptions`.

Constructor parameters in org.springframework.data.mapping with type arguments of type PersistentProperty
Constructor and Description
`GetOptions(Map<PersistentProperty<?>,Function<Object,Object>> handlers, AccessOptions.GetOptions.GetNulls nullValues)`

### Uses of PersistentProperty in org.springframework.data.mapping.context

Classes in org.springframework.data.mapping.context with type parameters of type PersistentProperty
`class` `AbstractMappingContext<E extends MutablePersistentEntity<?,P>,P extends PersistentProperty<P>>` Base class to build mapping metadata and thus create instances of `PersistentEntity` and `PersistentProperty`.
`interface` `MappingContext<E extends PersistentEntity<?,P>,P extends PersistentProperty<P>>` This interface defines the overall context including all known PersistentEntity instances and methods to obtain instances on demand. it is used internally to establish associations between entities and also at runtime to obtain entities by name.
`class` `MappingContextEvent<E extends PersistentEntity<?,P>,P extends PersistentProperty<P>>` Base implementation of an `ApplicationEvent` refering to a `PersistentEntity`.

Methods in org.springframework.data.mapping.context that return types with arguments of type PersistentProperty
`Optional<PersistentEntity<?,? extends PersistentProperty<?>>>` PersistentEntities.`getPersistentEntity(Class<?> type)` Returns the `PersistentEntity` for the given type.
`PersistentEntity<?,? extends PersistentProperty<?>>` PersistentEntities.`getRequiredPersistentEntity(Class<?> type)` Returns the `PersistentEntity` for the given type.
`Iterator<PersistentEntity<?,? extends PersistentProperty<?>>>` PersistentEntities.`iterator()`

Methods in org.springframework.data.mapping.context with parameters of type PersistentProperty
`PersistentEntity<?,?>` PersistentEntities.`getEntityUltimatelyReferredToBy(PersistentProperty<?> property)` Returns the `PersistentEntity` the given `PersistentProperty` refers to in case it's an association.
`TypeInformation<?>` PersistentEntities.`getTypeUltimatelyReferredToBy(PersistentProperty<?> property)` Returns the type the given `PersistentProperty` ultimately refers to.

Method parameters in org.springframework.data.mapping.context with type arguments of type PersistentProperty
`<T> Optional<T>` PersistentEntities.`mapOnContext(Class<?> type, BiFunction<MappingContext<?,? extends PersistentProperty<?>>,PersistentEntity<?,?>,T> combiner)` Executes the given `BiFunction` on the given `MappingContext` and `PersistentEntity` based on the given type.

Constructor parameters in org.springframework.data.mapping.context with type arguments of type PersistentProperty
Constructor and Description
`InvalidPersistentPropertyPath(String source, TypeInformation<?> type, String unresolvableSegment, PersistentPropertyPath<? extends PersistentProperty<?>> resolvedPath)` Creates a new `InvalidPersistentPropertyPath` for the given resolved path and message.

### Uses of PersistentProperty in org.springframework.data.mapping.model

Classes in org.springframework.data.mapping.model with type parameters of type PersistentProperty
`class` `AbstractPersistentProperty<P extends PersistentProperty<P>>` Simple implementation of `PersistentProperty`.
`class` `AnnotationBasedPersistentProperty<P extends PersistentProperty<P>>` Special `PersistentProperty` that takes annotations at a property into account.
`class` `BasicPersistentEntity<T,P extends PersistentProperty<P>>` Simple value object to capture information of `PersistentEntity`s.
`interface` `MutablePersistentEntity<T,P extends PersistentProperty<P>>` Interface capturing mutator methods for `PersistentEntity`s.
`interface` `ParameterValueProvider<P extends PersistentProperty<P>>` Callback interface to lookup values for a given `PreferredConstructor.Parameter`.
`class` `PersistentEntityParameterValueProvider<P extends PersistentProperty<P>>` `ParameterValueProvider` based on a `PersistentEntity` to use a `PropertyValueProvider` to lookup the value of the property referenced by the given `PreferredConstructor.Parameter`.
`interface` `PreferredConstructorDiscoverer<T,P extends PersistentProperty<P>>` Helper class to find a `PreferredConstructor`.
`interface` `PropertyValueProvider<P extends PersistentProperty<P>>` SPI for components to provide values for as `PersistentProperty`.
`class` `SpELExpressionParameterValueProvider<P extends PersistentProperty<P>>` `ParameterValueProvider` that can be used to front a `ParameterValueProvider` delegate to prefer a SpEL expression evaluation over directly resolving the parameter value with the delegate.

Classes in org.springframework.data.mapping.model that implement PersistentProperty
`class` `AbstractPersistentProperty<P extends PersistentProperty<P>>` Simple implementation of `PersistentProperty`.
`class` `AnnotationBasedPersistentProperty<P extends PersistentProperty<P>>` Special `PersistentProperty` that takes annotations at a property into account.

Methods in org.springframework.data.mapping.model with type parameters of type PersistentProperty
`<T,E extends PersistentEntity<? extends T,P>,P extends PersistentProperty<P>> T` EntityInstantiator.`createInstance(E entity, ParameterValueProvider<P> provider)` Creates a new instance of the given entity using the given source to pull data from.
`static <T,P extends PersistentProperty<P>> PreferredConstructor<T,P>` PreferredConstructorDiscoverer.`discover(Class<T> type)` Discovers the `PreferredConstructor` for the given type.
`static <T,P extends PersistentProperty<P>> PreferredConstructor<T,P>` PreferredConstructorDiscoverer.`discover(PersistentEntity<T,P> entity)` Discovers the `PreferredConstructorDiscoverer` for the given `PersistentEntity`.

Methods in org.springframework.data.mapping.model with parameters of type PersistentProperty
`String` FieldNamingStrategy.`getFieldName(PersistentProperty<?> property)` Returns the field name to be used for the given `PersistentProperty`.
`String` CamelCaseSplittingFieldNamingStrategy.`getFieldName(PersistentProperty<?> property)`
`String` PropertyNameFieldNamingStrategy.`getFieldName(PersistentProperty<?> property)`
`Object` InstantiationAwarePropertyAccessor.`getProperty(PersistentProperty<?> property)`
`<S> S` ConvertingPropertyAccessor.`getProperty(PersistentProperty<?> property, Class<S> targetType)` Returns the value of the given `PersistentProperty` converted to the given type.
`protected <S> S` ConvertingPropertyAccessor.`getTypedProperty(PersistentProperty<?> property, Class<S> type)`
`boolean` BasicPersistentEntity.`isConstructorArgument(PersistentProperty<?> property)`
`boolean` BasicPersistentEntity.`isIdProperty(PersistentProperty<?> property)`
`boolean` BasicPersistentEntity.`isVersionProperty(PersistentProperty<?> property)`
`void` InstantiationAwarePropertyAccessor.`setProperty(PersistentProperty<?> property, Object value)`
`void` ConvertingPropertyAccessor.`setProperty(PersistentProperty<?> property, Object value)`

Method parameters in org.springframework.data.mapping.model with type arguments of type PersistentProperty
`void` ConvertingPropertyAccessor.`setProperty(PersistentPropertyPath<? extends PersistentProperty<?>> path, Object value)`

### Uses of PersistentProperty in org.springframework.data.repository.core.support

Constructor parameters in org.springframework.data.repository.core.support with type arguments of type PersistentProperty
Constructor and Description
`PersistentEntityInformation(PersistentEntity<T,? extends PersistentProperty<?>> persistentEntity)`