@@ -92,6 +92,7 @@ public class MappingElasticsearchConverter
92
92
private CustomConversions conversions = new ElasticsearchCustomConversions (Collections .emptyList ());
93
93
private final SpELContext spELContext = new SpELContext (new MapAccessor ());
94
94
private final EntityInstantiators instantiators = new EntityInstantiators ();
95
+ private final ElasticsearchTypeMapper typeMapper ;
95
96
96
97
public MappingElasticsearchConverter (
97
98
MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ) {
@@ -106,6 +107,7 @@ public MappingElasticsearchConverter(
106
107
107
108
this .mappingContext = mappingContext ;
108
109
this .conversionService = conversionService != null ? conversionService : new DefaultConversionService ();
110
+ this .typeMapper = ElasticsearchTypeMapper .create (mappingContext );
109
111
}
110
112
111
113
@ Override
@@ -145,12 +147,16 @@ public void afterPropertiesSet() {
145
147
conversions .registerConvertersIn (conversionService );
146
148
}
147
149
150
+ public ElasticsearchTypeMapper getTypeMapper () {
151
+ return typeMapper ;
152
+ }
153
+
148
154
// region read/write
149
155
150
156
@ Override
151
157
public <R > R read (Class <R > type , Document source ) {
152
158
153
- Reader reader = new Reader (mappingContext , conversionService , conversions , spELContext , instantiators );
159
+ Reader reader = new Reader (mappingContext , conversionService , conversions , typeMapper , spELContext , instantiators );
154
160
return reader .read (type , source );
155
161
}
156
162
@@ -159,7 +165,7 @@ public void write(Object source, Document sink) {
159
165
160
166
Assert .notNull (source , "source to map must not be null" );
161
167
162
- Writer writer = new Writer (mappingContext , conversionService , conversions );
168
+ Writer writer = new Writer (mappingContext , conversionService , conversions , typeMapper );
163
169
writer .write (source , sink );
164
170
}
165
171
@@ -176,11 +182,11 @@ private static class Base {
176
182
177
183
private Base (
178
184
MappingContext <? extends ElasticsearchPersistentEntity <?>, ElasticsearchPersistentProperty > mappingContext ,
179
- GenericConversionService conversionService , CustomConversions conversions ) {
185
+ GenericConversionService conversionService , CustomConversions conversions , ElasticsearchTypeMapper typeMapper ) {
180
186
this .mappingContext = mappingContext ;
181
187
this .conversionService = conversionService ;
182
188
this .conversions = conversions ;
183
- this .typeMapper = ElasticsearchTypeMapper . create ( mappingContext ) ;
189
+ this .typeMapper = typeMapper ;
184
190
}
185
191
}
186
192
@@ -195,10 +201,10 @@ private static class Reader extends Base {
195
201
196
202
public Reader (
197
203
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 ) {
200
206
201
- super (mappingContext , conversionService , conversions );
207
+ super (mappingContext , conversionService , conversions , typeMapper );
202
208
this .spELContext = spELContext ;
203
209
this .instantiators = instantiators ;
204
210
}
@@ -670,8 +676,8 @@ static private class Writer extends Base {
670
676
671
677
public Writer (
672
678
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 );
675
681
}
676
682
677
683
void write (Object source , Document sink ) {
0 commit comments