From 251adc1eec41f8e2442b3dc0fe017ee563ca808c Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Wed, 26 Feb 2020 22:34:44 +0100 Subject: [PATCH] DATAES-754 - Completion field deserialization is failing due to class cast error. Original PR: #399 --- .../data/elasticsearch/core/completion/Completion.java | 6 ++++++ .../ElasticsearchTemplateCompletionTests.java | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/completion/Completion.java b/src/main/java/org/springframework/data/elasticsearch/core/completion/Completion.java index ee0fc4ace..ef8673316 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/completion/Completion.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/completion/Completion.java @@ -3,6 +3,7 @@ package org.springframework.data.elasticsearch.core.completion; import java.util.List; import java.util.Map; +import org.springframework.data.annotation.PersistenceConstructor; import org.springframework.lang.Nullable; /** @@ -23,6 +24,11 @@ public class Completion { this.input = input; } + @PersistenceConstructor + public Completion(List input) { + this.input = input.toArray(new String[0]); + } + public String[] getInput() { return input; } diff --git a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java index 2acfb331a..316e707ce 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/completion/ElasticsearchTemplateCompletionTests.java @@ -87,7 +87,8 @@ public class ElasticsearchTemplateCompletionTests { indexQueries.add(new CompletionEntityBuilder("4").name("Artur Konczak").suggest(new String[] { "Artur", "Konczak" }) .buildIndex()); - operations.bulkIndex(indexQueries, IndexCoordinates.of("test-index-core-completion").withTypes("completion-type")); + IndexCoordinates index = IndexCoordinates.of("test-index-core-completion"); + operations.bulkIndex(indexQueries, index); operations.indexOps(CompletionEntity.class).refresh(); } @@ -151,6 +152,13 @@ public class ElasticsearchTemplateCompletionTests { assertThat(options.get(1).getText().string()).isIn("Marchand", "Mohsin"); } + @Test // DATAES-754 + void shouldRetrieveEntityWithCompletion() { + loadCompletionObjectEntities(); + IndexCoordinates index = IndexCoordinates.of("test-index-core-completion"); + operations.get("1", CompletionEntity.class, index); + } + @Test public void shouldFindSuggestionsForGivenCriteriaQueryUsingAnnotatedCompletionEntity() {