我有两个班-个人和团队。
一个人只能在一个团队中,但一个团队可以有许多人(个人对象)。问题是人员和团队都需要其他类对象来创建自己。
课程:
@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>));
所以它会反复出现,没有尽头。
我想在数据库中添加一些记录,但我不知道如何添加。
事实上我需要一组人的物品,但我还是不知道
最佳答案
为什么在初始化Team
类时需要所有队友?
只需创建一个不带Person
参数的构造函数,然后执行如下方法:
public void addTeamMember(Person person) {
setOfMembers.add(person);
}
然后,您可以创建
Team
,创建Person
,最后将此人添加到团队中。关于java - 在表之间使用@ManyToOne链接时如何创建对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56350040/