@@ -92,6 +92,7 @@ public class MappingElasticsearchConverter
9292 private CustomConversions conversions = new ElasticsearchCustomConversions (Collections .emptyList ());
9393 private final SpELContext spELContext = new SpELContext (new MapAccessor ());
9494 private final EntityInstantiators instantiators = new EntityInstantiators ();
95+ private final ElasticsearchTypeMapper typeMapper ;
9596
9697 public MappingElasticsearchConverter (
9798 MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ) {
@@ -106,6 +107,7 @@ public MappingElasticsearchConverter(
106107
107108 this .mappingContext = mappingContext ;
108109 this .conversionService = conversionService != null ? conversionService : new DefaultConversionService ();
110+ this .typeMapper = ElasticsearchTypeMapper .create (mappingContext );
109111 }
110112
111113 @ Override
@@ -145,12 +147,16 @@ public void afterPropertiesSet() {
145147 conversions .registerConvertersIn (conversionService );
146148 }
147149
150+ public ElasticsearchTypeMapper getTypeMapper () {
151+ return typeMapper ;
152+ }
153+
148154 // region read/write
149155
150156 @ Override
151157 public <R > R read (Class <R > type , Document source ) {
152158
153- Reader reader = new Reader (mappingContext , conversionService , conversions , spELContext , instantiators );
159+ Reader reader = new Reader (mappingContext , conversionService , conversions , typeMapper , spELContext , instantiators );
154160 return reader .read (type , source );
155161 }
156162
@@ -159,7 +165,7 @@ public void write(Object source, Document sink) {
159165
160166 Assert .notNull (source , "source to map must not be null" );
161167
162- Writer writer = new Writer (mappingContext , conversionService , conversions );
168+ Writer writer = new Writer (mappingContext , conversionService , conversions , typeMapper );
163169 writer .write (source , sink );
164170 }
165171
@@ -176,11 +182,11 @@ private static class Base {
176182
177183 private Base (
178184 MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ,
179- GenericConversionService conversionService , CustomConversions conversions ) {
185+ GenericConversionService conversionService , CustomConversions conversions , ElasticsearchTypeMapper typeMapper ) {
180186 this .mappingContext = mappingContext ;
181187 this .conversionService = conversionService ;
182188 this .conversions = conversions ;
183- this .typeMapper = ElasticsearchTypeMapper . create ( mappingContext ) ;
189+ this .typeMapper = typeMapper ;
184190 }
185191 }
186192
@@ -195,10 +201,10 @@ private static class Reader extends Base {
195201
196202 public Reader (
197203 MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ,
198- GenericConversionService conversionService , CustomConversions conversions , SpELContext spELContext ,
199- EntityInstantiators instantiators ) {
204+ GenericConversionService conversionService , CustomConversions conversions , ElasticsearchTypeMapper typeMapper ,
205+ SpELContext spELContext , EntityInstantiators instantiators ) {
200206
201- super (mappingContext , conversionService , conversions );
207+ super (mappingContext , conversionService , conversions , typeMapper );
202208 this .spELContext = spELContext ;
203209 this .instantiators = instantiators ;
204210 }
@@ -670,8 +676,8 @@ static private class Writer extends Base {
670676
671677 public Writer (
672678 MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ,
673- GenericConversionService conversionService , CustomConversions conversions ) {
674- super (mappingContext , conversionService , conversions );
679+ GenericConversionService conversionService , CustomConversions conversions , ElasticsearchTypeMapper typeMapper ) {
680+ super (mappingContext , conversionService , conversions , typeMapper );
675681 }
676682
677683 void write (Object source , Document sink ) {
0 commit comments