Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在表之间有@ManyToOne链接时,如何创建对象_Java_Database_Hibernate_Jpa_Mapping - Fatal编程技术网

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

Java 在表之间有@ManyToOne链接时,如何创建对象,java,database,hibernate,jpa,mapping,Java,Database,Hibernate,Jpa,Mapping,我有两门课——个人课和团队课。 一个人只能在一个团队中,但一个团队可以有许多人(个人对象)。问题是Person和Team都需要其他类对象来创建它们自己 课程: @Entity @Table(name = "Team") public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private i

我有两门课——个人课和团队课。 一个人只能在一个团队中,但一个团队可以有许多人(个人对象)。问题是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 ...
}
@实体
@表(name=“Team”)
公开课小组{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”,nullable=false)
私有int-id;
@列(name=“teamName”,null=false)
私有字符串teamName;
@OneToMany(mappedBy=“myTeam”,fetch=FetchType.LAZY)
私有集合setOfMembers=newHashSet();
公共团队(int-id、字符串teamName、成员集){
//常用代码(不想浪费这么多空间)
}
…其他不相关的领域。。。
}
@实体
@表(name=“Person”)
公共阶层人士{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“ID”,nullable=false)
私有int-id;
@列(name=“teamID”,nullable=false)
私人int团队ID;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(name=“teamID”,referencedColumnName=“id”)
私人团队myTeam;
公众人士(int id、int teamID、团队myTeam){
//常用代码
}
…其他不相关的领域。。。
}
现在在主文件中,我尝试创建一个新对象:

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 t1=新团队(1,“夜班”,新人(1,1,);
因此,它不断重复,没有尽头。 我想向数据库中添加一些记录,但我不知道如何添加


实际上,我需要一组Person对象,但我仍然不知道在
团队
类初始化期间,为什么需要所有的队友

只需在不使用
Person
参数的情况下执行构造函数,然后执行如下方法:

public void addTeamMember(个人){
成员集合。添加(个人);
}
然后,您可以创建
团队
,创建
人员
,最后将该人员添加到团队中