Как я могу создать объект, когда @ManyToOne связывает таблицы

У меня есть 2 класса - Человек и Команда. Один человек может быть только в одной команде, но в одной команде может быть много людей (объектов-человеков). Проблема в том, что и Person, и Team нуждаются в других объектах класса для создания самих себя.

Классы:

@Entity
@Table(name = "Team")
public class Team {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private int id;

    @Column(name = "teamName", nullable = false)
    private String teamName;

    @OneToMany(mappedBy = "myTeam", fetch = FetchType.LAZY)
    private Set <Person> setOfMembers = new HashSet<Person>();

    public Team(int id, String teamName, Set <Person> setOfMembers) {
            //usual code (don't want to waste so much space)
    }
    ... other irrelevant fields ...
}

@Entity
@Table(name = "Person")
public class Person{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID", nullable = false)
    private int id;

    @Column(name = "teamID", nullable = false)
    private int teamID;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "teamID", referencedColumnName = "id")
    private Team myTeam;

    public Person(int id, int teamID, Team myTeam) {
        //usual code
    }
    ... other irrelevant fields ...
}

Теперь в основном файле я пытаюсь создать новый объект:

Team t1 = new Team(1,"Nights Watch", <and here i need Person Object, so i 
do something as follows:> new Person(1,1, <and here i need Team object>));

так что это повторяется, без конца. Я хочу добавить некоторые записи в базу данных, но я не знаю, как это сделать.

На самом деле мне нужно там Set of Person Objects, но все же я не знаю, как

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Зачем вам нужны все ваши товарищи по команде во время инициализации класса Team?

Просто создайте конструктор без аргумента Person, а затем выполните такой метод:

public void addTeamMember(Person person) {
   setOfMembers.add(person);
}

Затем вы можете создать Team, создать Person и, наконец, добавить человека в команду.

Другие вопросы по теме