java循环依赖双向@OneToMany JPA关系
鉴于以下两个实体:
@Entity
public class Goal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String description;
private BigDecimal amount;
@Email
private String email;
@Email
private String supervisorEmail;
private LocalDateTime deadline;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private PaymentPurpose purpose;
@Enumerated(EnumType.STRING)
private GoalStatus status;
@ManyToOne(cascade = CascadeType.ALL)
private Person person;
//getters and setters
}
及
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstName;
private String lastName;
@Email
private String email;
@OneToMany(mappedBy = "person")
private List<Goal> goals;
//getters and setters
}
当我在插入带有伪Person
的伪Goal
后调用goalRepository.findAll()
时,我得到一个永无止境的递归循环。
将@JsonIgnore
添加到Person
中的goal
列表没有帮助。我也试过了。我错过了什么
# 1 楼答案
如果异常是由jackson引发的,请尝试使用以下两种注释:
见http://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion