DTOs Двунаправленная проблема рекурсии Джексона - PullRequest
0 голосов
/ 20 апреля 2020

Команда:

@Entity
    public class TeamDTO {

        // other fields

        @OneToMany(mappedBy = "team")
        private List<PlayerDTO> members;

        // methods

    }

Игрок:

@Entity
public class PlayerDTO {

    // other fields

    @ManyToOne
    @JoinColumn(name = "pla_fk_n_teamId")
    private TeamDTO team;

    // methods

}

У меня 2 DTO, как указано выше, с бесконечной проблемой рекурсии. Я уже искал в Google эту проблему, нашел несколько ответов, таких как (@JSONIgnore, @JsonManagedReference или @JSONBackReference et c.), Все эти 3 аннотации в основном говорят об игнорировании одной стороны ответа DTO. Но я не могу игнорировать ни одно из полей из-за причин, указанных ниже :

when I do GET /teams/1 , I need to know all members of Team 1

when I do GET /players/11 , I need to know in which Team, player 11 playing.

Итак, я не могу игнорировать любое из полей с любой из сторон. Я ищу лучшее решение. Может кто-нибудь, пожалуйста, помогите мне по вышеупомянутой проблеме рекурсии DTO.

...