У меня есть 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, но все же я не знаю, как
Зачем вам нужны все ваши товарищи по команде во время инициализации класса Team
?
Просто создайте конструктор без аргумента Person
, а затем выполните такой метод:
public void addTeamMember(Person person) {
setOfMembers.add(person);
}
Затем вы можете создать Team
, создать Person
и, наконец, добавить человека в команду.