From 205d74b6dbdfc640c212d3421ef31bf47e278401 Mon Sep 17 00:00:00 2001 From: Aouichaoui Youssef <21143371+youssef3wi@users.noreply.github.com> Date: Mon, 26 Feb 2024 20:57:17 +0100 Subject: [PATCH] Implement the equals and hashCode contracts for Field. Original Pull Request #2859 Closes #2858 --- .../data/elasticsearch/core/query/SimpleField.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/query/SimpleField.java b/src/main/java/org/springframework/data/elasticsearch/core/query/SimpleField.java index a0cad3961..ee2e0473e 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/query/SimpleField.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/query/SimpleField.java @@ -19,6 +19,8 @@ import org.springframework.data.elasticsearch.annotations.FieldType; import org.springframework.lang.Nullable; import org.springframework.util.Assert; +import java.util.Objects; + /** * The most trivial implementation of a Field. The {@link #name} is updatable, so it may be changed during query * preparation by the {@link org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter}. @@ -79,4 +81,16 @@ public class SimpleField implements Field { public String toString() { return getName(); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SimpleField that)) return false; + return Objects.equals(name, that.name) && Objects.equals(fieldType, that.fieldType) && Objects.equals(path, that.path); + } + + @Override + public int hashCode() { + return Objects.hash(name, fieldType, path); + } }