Вы можете использовать @JsonIgnore, но это будет игнорировать json-данные, к которым можно получить доступ из-за отношения внешнего ключа. Поэтому, если вы запрашиваете данные внешнего ключа (большую часть времени мы требуем), то @JsonIgnore вам не поможет. В этой ситуации следуйте приведенному ниже решению.
вы получаете бесконечную рекурсию из-за того, что класс BodyStat снова ссылается на объект Trainee
BodyStat
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name="trainee_fk")
private Trainee trainee;
Ученик
@OneToMany(mappedBy = "trainee", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@Column(nullable = true)
private Set<BodyStat> bodyStats;
Поэтому вам нужно прокомментировать / пропустить указанную выше часть у Стажера