有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在表之间有@ManyToOne链接时,如何创建对象

我有两门课——个人课和团队课。 一个人只能在一个团队中,但一个团队可以有许多人(个人对象)。问题是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>));

因此,它不断重复,没有尽头。 我想向数据库中添加一些记录,但我不知道如何添加

实际上我需要一组Person对象,但我仍然不知道怎么做


共 (1) 个答案

  1. # 1 楼答案

    为什么在初始化Team类时需要所有的队友

    只需执行不带Person参数的构造函数,然后执行如下方法:

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

    然后,您可以创建Team,创建Person,最后将此人添加到团队中