mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-07-01 16:22:12 +00:00
MappingBuilder must set configured date formats for date_range fields.
Original Pull Request #2103 Closes #2102 (cherry picked from commit bf080002bc60aaf63d27d1569833a2ae0374a161)
This commit is contained in:
parent
aa22d8239d
commit
2be27593d6
@ -239,7 +239,7 @@ public final class MappingParameters {
|
||||
if (type != FieldType.Auto) {
|
||||
objectNode.put(FIELD_PARAM_TYPE, type.getMappedName());
|
||||
|
||||
if (type == FieldType.Date) {
|
||||
if (type == FieldType.Date || type == FieldType.Date_Nanos || type == FieldType.Date_Range) {
|
||||
List<String> formats = new ArrayList<>();
|
||||
|
||||
// built-in formats
|
||||
|
@ -42,6 +42,7 @@ import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
import org.springframework.data.elasticsearch.annotations.*;
|
||||
import org.springframework.data.elasticsearch.core.MappingContextBaseTests;
|
||||
import org.springframework.data.elasticsearch.core.Range;
|
||||
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
|
||||
import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
|
||||
import org.springframework.data.elasticsearch.core.query.SeqNoPrimaryTerm;
|
||||
@ -721,6 +722,29 @@ public class MappingBuilderUnitTests extends MappingContextBaseTests {
|
||||
assertEquals(expected, mapping, false);
|
||||
}
|
||||
|
||||
@Test // #2102
|
||||
@DisplayName("should write date formats for date range fields")
|
||||
void shouldWriteDateFormatsForDateRangeFields() throws JSONException {
|
||||
|
||||
String expected = "{\n" + //
|
||||
" \"properties\": {\n" + //
|
||||
" \"_class\": {\n" + //
|
||||
" \"type\": \"keyword\",\n" + //
|
||||
" \"index\": false,\n" + //
|
||||
" \"doc_values\": false\n" + //
|
||||
" },\n" + //
|
||||
" \"field2\": {\n" + //
|
||||
" \"type\": \"date_range\",\n" + //
|
||||
" \"format\": \"date\"\n" + //
|
||||
" }\n" + //
|
||||
" }\n" + //
|
||||
"}\n"; //
|
||||
|
||||
String mapping = getMappingBuilder().buildPropertyMapping(DateRangeEntity.class);
|
||||
|
||||
assertEquals(expected, mapping, false);
|
||||
}
|
||||
|
||||
@Test // #1454
|
||||
@DisplayName("should write type hints when context is configured to do so")
|
||||
void shouldWriteTypeHintsWhenContextIsConfiguredToDoSo() throws JSONException {
|
||||
@ -1911,6 +1935,31 @@ public class MappingBuilderUnitTests extends MappingContextBaseTests {
|
||||
}
|
||||
}
|
||||
|
||||
private static class DateRangeEntity {
|
||||
@Nullable
|
||||
@Id private String id;
|
||||
@Nullable
|
||||
@Field(type = Date_Range, format = DateFormat.date) private Range<LocalDateTime> field2;
|
||||
|
||||
@Nullable
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(@Nullable String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Range<LocalDateTime> getField2() {
|
||||
return field2;
|
||||
}
|
||||
|
||||
public void setField2(@Nullable Range<LocalDateTime> field2) {
|
||||
this.field2 = field2;
|
||||
}
|
||||
}
|
||||
|
||||
@Document(indexName = "magazine")
|
||||
private static class Magazine {
|
||||
@Id @Nullable private String id;
|
||||
|
Loading…
x
Reference in New Issue
Block a user