Class MappingElasticsearchConverter
java.lang.Object
org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter
- All Implemented Interfaces:
Aware
,InitializingBean
,ApplicationContextAware
,EntityConverter<ElasticsearchPersistentEntity<?>,
,ElasticsearchPersistentProperty, Object, Document> EntityReader<Object,
,Document> EntityWriter<Object,
,Document> ElasticsearchConverter
public class MappingElasticsearchConverter
extends Object
implements ElasticsearchConverter, ApplicationContextAware, InitializingBean
Elasticsearch specific
EntityConverter
implementation based on domain type
metadata
.- Since:
- 3.2
- Author:
- Rizwan Idrees, Mohsin Husen, Christoph Strobl, Peter-Josef Meisch, Mark Paluch, Roman Puchkovskiy, Konrad Kurdej, Subhobrata Dey, Marc Vanbrabant, Anton Naydenov, vdisk
-
Constructor Summary
ConstructorDescriptionMappingElasticsearchConverter
(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) MappingElasticsearchConverter
(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext, GenericConversionService conversionService) -
Method Summary
Modifier and TypeMethodDescriptionvoid
<R> R
void
setApplicationContext
(ApplicationContext applicationContext) void
setConversions
(CustomConversions conversions) Set theCustomConversions
to be applied during the mapping process.updateFieldNames
(String propertyPath, ElasticsearchPersistentEntity<?> persistentEntity) Replaces the parts in a dot separated property path with the field names of the respective properties.void
updateQuery
(Query query, Class<?> domainClass) Updates aQuery
by renaming the property names in the query to the correct mapped field names and the values to the converted values if theElasticsearchPersistentProperty
for a property has aPropertyValueConverter
.void
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter
convertId, getProjectionFactory, mapObject
-
Constructor Details
-
MappingElasticsearchConverter
public MappingElasticsearchConverter(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) -
MappingElasticsearchConverter
public MappingElasticsearchConverter(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext, @Nullable GenericConversionService conversionService)
-
-
Method Details
-
setApplicationContext
- Specified by:
setApplicationContext
in interfaceApplicationContextAware
- Throws:
BeansException
-
getMappingContext
public MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> getMappingContext()- Specified by:
getMappingContext
in interfaceEntityConverter<ElasticsearchPersistentEntity<?>,
ElasticsearchPersistentProperty, Object, Document>
-
getConversionService
- Specified by:
getConversionService
in interfaceEntityConverter<ElasticsearchPersistentEntity<?>,
ElasticsearchPersistentProperty, Object, Document>
-
setConversions
Set theCustomConversions
to be applied during the mapping process.
Conversions are registered afterbean initialization
.- Parameters:
conversions
- must not be null.
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSet
in interfaceInitializingBean
-
getTypeMapper
-
read
- Specified by:
read
in interfaceEntityReader<Object,
Document>
-
write
- Specified by:
write
in interfaceEntityWriter<Object,
Document>
-
updateQuery
Description copied from interface:ElasticsearchConverter
Updates aQuery
by renaming the property names in the query to the correct mapped field names and the values to the converted values if theElasticsearchPersistentProperty
for a property has aPropertyValueConverter
. If domainClass is null it's a noop.- Specified by:
updateQuery
in interfaceElasticsearchConverter
- Parameters:
query
- the query that is internally updated, must not be nulldomainClass
- the class of the object that is searched with the query
-
updateFieldNames
public String updateFieldNames(String propertyPath, ElasticsearchPersistentEntity<?> persistentEntity) Description copied from interface:ElasticsearchConverter
Replaces the parts in a dot separated property path with the field names of the respective properties. If no matching property is found, the original parts are rteturned.- Specified by:
updateFieldNames
in interfaceElasticsearchConverter
- Parameters:
propertyPath
- the property pathpersistentEntity
- the replaced values.- Returns:
- a String wihere the property names are replaced with field names
-