【发布时间】:2018-04-28 16:22:31
【问题描述】:
我正在使用 spring boot 和 spring data rest 并且有两个实体,Exam 和 Subject,它们的定义如下:
public class Exam {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="exam_id")
Integer examId;
@Column(name="exam_name")
String examName;
@ManyToMany(mappedBy = "exams")
Set<Subject> subjects = new HashSet<>(0);
}
public class Subject {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "subject_id")
Integer subjectId;
@Column(name = "subject_name")
String subjectName;
@ManyToMany
@JoinTable(
name = "subject_exam",
joinColumns = {@JoinColumn(name = "subject_id", updatable = false, nullable = false)},
inverseJoinColumns = {@JoinColumn(name = "exam_id", updatable = false, nullable = false)}
)
Set<Exam> exams = new HashSet<>(0);
}
现在我已经定义了主题的投影如下:
@Projection(name="detail", types={Subject.class})
public interface SubjectDetailProjection {
Integer getSubjectId();
String getSubjectName();
Set<ExamDetailProjection> getExams();
}
考试的详细投影也以相同的方式定义。 现在,在为这个投影调用 api 时,我得到了无限递归。我怎样才能避免这个问题?
【问题讨论】:
标签: spring jackson spring-data-rest