diff --git a/src/test/java/org/springframework/data/elasticsearch/core/MappingBuilderTests.java b/src/test/java/org/springframework/data/elasticsearch/core/MappingBuilderTests.java index f7f7a7495..8ae28e626 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/MappingBuilderTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/MappingBuilderTests.java @@ -164,4 +164,20 @@ public void shouldBuildMappingsForGeoPoint() throws IOException { assertThat(result, containsString("\"pointC\":{\"type\":\"geo_point\"")); assertThat(result, containsString("\"pointD\":{\"type\":\"geo_point\"")); } + + /** + * DATAES-260 - StacOverflow when two reverse relationship. + */ + @Test + public void shouldHandleReverseRelationship() { + //given + elasticsearchTemplate.createIndex(User.class); + elasticsearchTemplate.putMapping(User.class); + elasticsearchTemplate.createIndex(Group.class); + elasticsearchTemplate.putMapping(Group.class); + //when + + //then + + } } diff --git a/src/test/java/org/springframework/data/elasticsearch/entities/Group.java b/src/test/java/org/springframework/data/elasticsearch/entities/Group.java new file mode 100644 index 000000000..efc748eaa --- /dev/null +++ b/src/test/java/org/springframework/data/elasticsearch/entities/Group.java @@ -0,0 +1,23 @@ +package org.springframework.data.elasticsearch.entities; + +import java.util.HashSet; +import java.util.Set; + +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +/** + * Created by akonczak on 21/08/2016. + */ + +@Document(indexName = "groups", type = "group") +public class Group { + + @Id + String id; + + @Field(type = FieldType.Nested, ignoreFields ={"groups"}) + private Set users = new HashSet(); +} diff --git a/src/test/java/org/springframework/data/elasticsearch/entities/User.java b/src/test/java/org/springframework/data/elasticsearch/entities/User.java new file mode 100644 index 000000000..17cdff2da --- /dev/null +++ b/src/test/java/org/springframework/data/elasticsearch/entities/User.java @@ -0,0 +1,22 @@ +package org.springframework.data.elasticsearch.entities; + +import java.util.HashSet; +import java.util.Set; + +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +/** + * Created by akonczak on 21/08/2016. + */ + +@Document(indexName = "users", type = "user") +public class User { + @Id + private String id; + + @Field(type= FieldType.Nested,ignoreFields={"users"}) + private Set groups = new HashSet(); +}