|
30 | 30 | import org.springframework.data.elasticsearch.annotations.Field;
|
31 | 31 | import org.springframework.data.elasticsearch.annotations.FieldType;
|
32 | 32 | import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
|
| 33 | +import org.springframework.data.elasticsearch.core.query.FetchSourceFilter; |
33 | 34 | import org.springframework.data.elasticsearch.core.query.FetchSourceFilterBuilder;
|
34 | 35 | import org.springframework.data.elasticsearch.core.query.Query;
|
35 | 36 | import org.springframework.data.elasticsearch.core.query.SourceFilter;
|
@@ -186,6 +187,38 @@ public String[] getExcludes() {
|
186 | 187 | assertThat(entity.getField3()).isNull();
|
187 | 188 | }
|
188 | 189 |
|
| 190 | + @Test // #3009 |
| 191 | + @DisplayName("should not return any fields when source is set to false") |
| 192 | + void shouldNotReturnAnyFieldsWhenSourceIsSetToFalse() { |
| 193 | + |
| 194 | + Query query = Query.findAll(); |
| 195 | + query.addSourceFilter(FetchSourceFilter.of(b -> b.withFetchSource(false))); |
| 196 | + |
| 197 | + SearchHits<Entity> entities = operations.search(query, Entity.class); |
| 198 | + |
| 199 | + assertThat(entities).hasSize(1); |
| 200 | + Entity entity = entities.getSearchHit(0).getContent(); |
| 201 | + assertThat(entity.getField1()).isNull(); |
| 202 | + assertThat(entity.getField2()).isNull(); |
| 203 | + assertThat(entity.getField3()).isNull(); |
| 204 | + } |
| 205 | + |
| 206 | + @Test // #3009 |
| 207 | + @DisplayName("should return all fields when source is set to true") |
| 208 | + void shouldReturnAllFieldsWhenSourceIsSetToTrue() { |
| 209 | + |
| 210 | + Query query = Query.findAll(); |
| 211 | + query.addSourceFilter(FetchSourceFilter.of(b -> b.withFetchSource(true))); |
| 212 | + |
| 213 | + SearchHits<Entity> entities = operations.search(query, Entity.class); |
| 214 | + |
| 215 | + assertThat(entities).hasSize(1); |
| 216 | + Entity entity = entities.getSearchHit(0).getContent(); |
| 217 | + assertThat(entity.getField1()).isNotNull(); |
| 218 | + assertThat(entity.getField2()).isNotNull(); |
| 219 | + assertThat(entity.getField3()).isNotNull(); |
| 220 | + } |
| 221 | + |
189 | 222 | @Document(indexName = "#{@indexNameProvider.indexName()}")
|
190 | 223 | public static class Entity {
|
191 | 224 | @Nullable
|
|
0 commit comments