Команда:
@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
}
В нашем приложении мы используем Spring Boot . В основном у нас было моделей для транзакций БД и DTO для ответов пользовательского интерфейса.
Для моделей я вижу, что они имеют циклические зависимости (при использовании двунаправленной связи с использованием ассоциаций oneToMany и ManyToOne), но В случае DTO, как вы думаете, это хороший дизайн, чтобы показать BiDirectional?
Я использую MapStruct, для отображения объектов между моделями и DTO, когда я использовал DTO в качестве двунаправленного, это становится очень жестким чтобы решить эти проблемы круговой зависимости, это как большая часть времени тратить время на решение этих глупых круговых проблем.
Итак, в ваших приложениях ваши DTO являются двунаправленными или однонаправленными? Как избежать использования двунаправленного текста в DTO, учитывая приведенный ниже вариант использования?
when I do GET /teams/1 , I need to show all members of Team 1
when I do GET /players/11 , I need to show in which Team, player 11 playing.
Я уже искал в google выше, нашел несколько ответов и мог бы разрешить и круговые проблемы, но избегать абсолютно круглых вопросов - это действительно PIA для DTO.
Мой запрос НЕ для того, чтобы решить круговые проблемы в DTO, а вместо этого мой вопрос - как полностью избежать циклических проблем в DTO и при этом достичь сценария использования, описанного выше.