Ars*_*jum 3 spring spring-data-rest
我有一个 Questions 实体,其中包含以下选项列表:
@OneToMany(mappedBy = "question")
List<Option> options;
Run Code Online (Sandbox Code Playgroud)
在选项实体中,我将关系指定为:
@ManyToOne
@JoinColumn(name="question_id")
Question question;
Run Code Online (Sandbox Code Playgroud)
当我点击时/api/questions
,它工作正常,但当我点击时/api/questions/1
,它给出 java.lang.StackOverflowError: null
我究竟做错了什么?
这是因为 Option 指的是 Question,而 Question 指的是 Option。您应该将 @JsonIgnore 添加到您的一个类中,以防止彼此无限链接。toString() 方法也是如此。如果您使用 Lombok 或生成默认的 toString 方法,它也可能导致 statckoverflow。因为班级挂钩。为了防止这种情况,尝试在 toString 方法之一中排除类上的链接。在 Lombok 的 @ToString 注释中添加 exclude 语句并排除 Option 或 Question。也许您调用了案例循环的 toString 方法。@ToString(exclude = {"option"})
归档时间: |
|
查看次数: |
1129 次 |
最近记录: |