我使用的是简单的关系(spring data elasticsearch),但springboot正在抛出StackOverflowError
@Document(indexName = "users", type = "user")
public class User {
@Id
private String id;
@Field(type= FieldType.Nested,ignoreFields={"users"})
private Set<Group> groups = new HashSet<Group>();
}
@Document(indexName = "groups", type = "group")
public class Group {
@Id
String id;
@Field(type = FieldType.Nested, ignoreFields ={"groups"})
private Set<User> users = new HashSet<User>();
}
public interface UserRepository extends ElasticsearchRepository<User, String>{
}
public interface GroupRepository extends ElasticsearchRepository<Group, String> {
}
任何想法是什么问题?
由于 拉詹
答案 0 :(得分:0)
正如你所说:spring-boot正在抛出StackOverflowError。
这是因为没有安全措施或在spring-boot中检测循环依赖。
看一下spring-boot源代码:MappingBuilder.java,当你的A类具有引用类B的@Field
注释时,它会永远不会中断,@Field
注释引用类A。