Skip to content

Commit 7540a2a

Browse files
authored
DATAES-826 - Add method to IndexOperations to write an index mapping from an entity class.
Original PR: spring-projects#455
1 parent 6487d0d commit 7540a2a

File tree

9 files changed

+32
-22
lines changed

9 files changed

+32
-22
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ default boolean indexExists(Class<?> clazz) {
186186
@Deprecated
187187
default boolean putMapping(Class<?> clazz) {
188188
IndexOperations indexOps = indexOps(clazz);
189-
return indexOps.putMapping(indexOps.createMapping(clazz));
189+
return indexOps.putMapping(clazz);
190190
}
191191

192192
/**
@@ -202,7 +202,7 @@ default boolean putMapping(Class<?> clazz) {
202202
@Deprecated
203203
default boolean putMapping(IndexCoordinates index, Class<?> clazz) {
204204
IndexOperations indexOps = indexOps(index);
205-
return indexOps.putMapping(indexOps.createMapping(clazz));
205+
return indexOps.putMapping(clazz);
206206
}
207207

208208
/**

src/main/java/org/springframework/data/elasticsearch/core/IndexOperations.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,16 @@ public interface IndexOperations {
9393
*/
9494
boolean putMapping(Document mapping);
9595

96+
/**
97+
* Creates the index mapping for the given class and writes it to the index.
98+
* @param clazz the clazz to create a mapping for
99+
* @return {@literal true} if the mapping could be stored
100+
* @since 4.1
101+
*/
102+
default boolean putMapping(Class<?> clazz) {
103+
return putMapping(createMapping(clazz));
104+
}
105+
96106
/**
97107
* Get mapping for an index defined by a class.
98108
*

src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private void createIndex() {
102102
}
103103

104104
private void putMapping() {
105-
indexOperations.putMapping(indexOperations.createMapping(entityClass));
105+
indexOperations.putMapping(entityClass);
106106
}
107107

108108
private boolean createIndexAndMapping() {

src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,15 +123,15 @@ public void before() {
123123
deleteIndices();
124124

125125
indexOperations.create();
126-
indexOperations.putMapping(indexOperations.createMapping(SampleEntity.class));
126+
indexOperations.putMapping(SampleEntity.class);
127127

128128
IndexOperations indexOpsSampleEntityUUIDKeyed = operations.indexOps(SampleEntityUUIDKeyed.class);
129129
indexOpsSampleEntityUUIDKeyed.create();
130-
indexOpsSampleEntityUUIDKeyed.putMapping(indexOpsSampleEntityUUIDKeyed.createMapping(SampleEntityUUIDKeyed.class));
130+
indexOpsSampleEntityUUIDKeyed.putMapping(SampleEntityUUIDKeyed.class);
131131

132132
IndexOperations indexOpsSearchHitsEntity = operations.indexOps(SearchHitsEntity.class);
133133
indexOpsSearchHitsEntity.create();
134-
indexOpsSearchHitsEntity.putMapping(indexOpsSearchHitsEntity.createMapping(SearchHitsEntity.class));
134+
indexOpsSearchHitsEntity.putMapping(SearchHitsEntity.class);
135135
}
136136

137137
@AfterEach
@@ -1419,7 +1419,7 @@ public void shouldPutMappingForGivenEntity() {
14191419
// when
14201420

14211421
// then
1422-
assertThat(indexOperations.putMapping(indexOperations.createMapping(entityClass))).isTrue();
1422+
assertThat(indexOperations.putMapping(entityClass)).isTrue();
14231423
}
14241424

14251425
@Test // DATAES-305
@@ -1432,7 +1432,7 @@ public void shouldPutMappingWithCustomIndexName() {
14321432
indexOperations1.create();
14331433

14341434
// when
1435-
indexOperations1.putMapping(indexOperations1.createMapping(entity));
1435+
indexOperations1.putMapping(entity);
14361436

14371437
// then
14381438
Map<String, Object> mapping = indexOperations.getMapping();
@@ -1622,7 +1622,7 @@ public void shouldReturnDifferentEntityForMultiSearch() {
16221622
IndexOperations bookIndexOperations = operations.indexOps(Book.class);
16231623
bookIndexOperations.delete();
16241624
bookIndexOperations.create();
1625-
indexOperations.putMapping(indexOperations.createMapping(clazz));
1625+
indexOperations.putMapping(clazz);
16261626
bookIndexOperations.refresh();
16271627

16281628
IndexCoordinates bookIndex = IndexCoordinates.of("test-index-book-core-template").withTypes("book");
@@ -2263,7 +2263,7 @@ public void shouldCreateIndexWithGivenClassAndSettings() {
22632263
// when
22642264
indexOperations.delete();
22652265
indexOperations.create(parse(settings));
2266-
indexOperations.putMapping(indexOperations.createMapping(SampleEntity.class));
2266+
indexOperations.putMapping(SampleEntity.class);
22672267
indexOperations.refresh();
22682268

22692269
// then

src/test/java/org/springframework/data/elasticsearch/core/ReactiveElasticsearchTemplateTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void setUp() {
108108
deleteIndices();
109109

110110
indexOperations.create();
111-
indexOperations.putMapping(indexOperations.createMapping(SampleEntity.class));
111+
indexOperations.putMapping(SampleEntity.class);
112112
indexOperations.refresh();
113113

114114
template = new ReactiveElasticsearchTemplate(TestUtils.reactiveClient(), restTemplate.getElasticsearchConverter());

src/test/java/org/springframework/data/elasticsearch/core/event/ElasticsearchOperationsCallbackTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ void setUp() {
5555
IndexOperations indexOps = operations.indexOps(SampleEntity.class);
5656
indexOps.delete();
5757
indexOps.create();
58-
indexOps.putMapping(indexOps.createMapping(SampleEntity.class));
58+
indexOps.putMapping(SampleEntity.class);
5959
}
6060

6161
@AfterEach

src/test/java/org/springframework/data/elasticsearch/core/event/ReactiveElasticsearchOperationsCallbackTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public Mono<SampleEntity> onBeforeConvert(SampleEntity entity, IndexCoordinates
6767
void setUp() {
6868
IndexOperations indexOps = nonreactiveOperations.indexOps(SampleEntity.class);
6969
indexOps.create();
70-
indexOps.putMapping(indexOps.createMapping(SampleEntity.class));
70+
indexOps.putMapping(SampleEntity.class);
7171
}
7272

7373
@AfterEach

src/test/java/org/springframework/data/elasticsearch/core/index/MappingBuilderTests.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public void before() {
108108
public void shouldNotFailOnCircularReference() {
109109

110110
operations.indexOps(SimpleRecursiveEntity.class).create();
111-
indexOperations.putMapping(indexOperations.createMapping(SimpleRecursiveEntity.class));
111+
indexOperations.putMapping(SimpleRecursiveEntity.class);
112112
indexOperations.refresh();
113113
}
114114

@@ -144,7 +144,7 @@ public void shouldAddStockPriceDocumentToIndex() {
144144

145145
// When
146146
indexOps.create();
147-
indexOps.putMapping(indexOps.createMapping(StockPrice.class));
147+
indexOps.putMapping(StockPrice.class);
148148
String symbol = "AU";
149149
double price = 2.34;
150150
String id = "abc";
@@ -197,7 +197,7 @@ public void shouldAddSampleInheritedEntityDocumentToIndex() {
197197

198198
// when
199199
indexOps.create();
200-
indexOps.putMapping(indexOps.createMapping(SampleInheritedEntity.class));
200+
indexOps.putMapping(SampleInheritedEntity.class);
201201
Date createdDate = new Date();
202202
String message = "msg";
203203
String id = "abc";
@@ -238,11 +238,11 @@ public void shouldHandleReverseRelationship() {
238238
// given
239239
IndexOperations indexOpsUser = operations.indexOps(User.class);
240240
indexOpsUser.create();
241-
indexOpsUser.putMapping(indexOpsUser.createMapping(User.class));
241+
indexOpsUser.putMapping(User.class);
242242

243243
IndexOperations indexOpsGroup = operations.indexOps(Group.class);
244244
indexOpsGroup.create();
245-
indexOpsGroup.putMapping(indexOpsGroup.createMapping(Group.class));
245+
indexOpsGroup.putMapping(Group.class);
246246

247247
// when
248248

@@ -255,7 +255,7 @@ public void shouldMapBooks() {
255255
// given
256256
IndexOperations indexOps = operations.indexOps(Book.class);
257257
indexOps.create();
258-
indexOps.putMapping(indexOps.createMapping(Book.class));
258+
indexOps.putMapping(Book.class);
259259

260260
// when
261261

@@ -268,7 +268,7 @@ public void shouldUseBothAnalyzer() {
268268
// given
269269
IndexOperations indexOps = this.operations.indexOps(Book.class);
270270
indexOps.create();
271-
indexOps.putMapping(indexOps.createMapping(Book.class));
271+
indexOps.putMapping(Book.class);
272272

273273
// when
274274
Map mapping = indexOps.getMapping();
@@ -310,7 +310,7 @@ public void shouldUseCopyTo() {
310310
// given
311311
IndexOperations indexOps = operations.indexOps(CopyToEntity.class);
312312
indexOps.create();
313-
indexOps.putMapping(indexOps.createMapping(CopyToEntity.class));
313+
indexOps.putMapping(CopyToEntity.class);
314314

315315
// when
316316
Map mapping = indexOps.getMapping();

src/test/java/org/springframework/data/elasticsearch/core/query/CriteriaQueryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public void before() {
7474
indexOperations = operations.indexOps(SampleEntity.class);
7575
indexOperations.delete();
7676
indexOperations.create();
77-
indexOperations.putMapping(indexOperations.createMapping(SampleEntity.class));
77+
indexOperations.putMapping(SampleEntity.class);
7878
indexOperations.refresh();
7979
}
8080

0 commit comments

Comments
 (0)