Spring 数据中的@OneToMany stackoverflow

@OneToMany stackoverflow in Spring Data Rest

我有一个问题实体,其中包含如下选项列表:

@OneToMany(mappedBy = "question")
List<Option> options;

并且在 Options 实体中,我将关系指定为:

@ManyToOne
@JoinColumn(name="question_id")
Question question;

当我点击 /api/questions 时,它工作正常但是当我点击 /api/questions/1 时,它给出 java.lang.WhosebugError: null

我做错了什么?

因为Option指Question,Question指Option。你应该添加 @JsonIgnore 到您的 class 之一,以防止彼此无限 linking。 toString() 方法也可以做同样的事情。如果您使用 Lombok 或生成默认的 toString 方法,它也可能导致 statckoverflow。因为 classs linked 到 class。为防止这种情况,请尝试在其中一种 toString 方法中排除 class 上的 link。 在 Lombok 的 @ToString 注释中添加排除语句并排除 Option 或 Question。也许你调用 cases 循环的 toString 方法。 @ToString(排除={"option"})