Java Hibernate在类中存储字段

Java Hibernate在类中存储字段,java,hibernate,orm,relational-database,Java,Hibernate,Orm,Relational Database,我有两个班级,有两个单独的表格,“雇员”和“公司”。我想保留一份公司类员工的名单。这很简单,但我不知道如何在数据库端表示此列表 “公司”类: @Entity @Table(name = "company") public class Company { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Integer id; @Col

我有两个班级,有两个单独的表格,“雇员”和“公司”。我想保留一份公司类员工的名单。这很简单,但我不知道如何在数据库端表示此列表

“公司”类:

@Entity
@Table(name = "company")
public class Company {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Integer id;

    @Column(name = "name")
    private String name;

    private List<Employee> employeeList;

}

如果没有hibernate,我会选择创建另一个包含两列“employeeId”和“companyId”的表的设计,并尝试让所有员工的“employeeId”与“companyId”匹配。我不知道在冬眠状态下是否可以这样做。如果是,怎么做?如果没有,你的解决方案是什么?

我认为你需要在公司和员工之间建立一对一的关系。Hibernate
@OneToMany
注释也可以用于此目的


下面的示例演示了如何在Hibernate中执行此操作。简单的回答是,您可以配置Hibernate以生成一个表来存储所需的关联。 您可以使用注释来实现这一点。按照您的示例,它将类似于:

@Entity
@Table(name = "company")
public class Company {
...
@OneToMany// or @ManyToMany
@JoinTable(name = "table_name",
    joinColumns = @JoinColumn(name="employeeId", referencedColumnName="id"),
    inverseJoinColumns = @JoinColumn(name="companyId",  referencedColumnName="id"))
private List<Employee> employeeList;
@实体
@表(name=“公司”)
公营公司{
...
@一个多月//或@manytomy
@JoinTable(name=“table\u name”,
joinColumns=@JoinColumn(name=“employeeId”,referencedColumnName=“id”),
inverseJoinColumns=@JoinColumn(name=“companyId”,referencedColumnName=“id”))
私人名单雇员名单;
现在Hibernate将创建一个名为table_name的表,其中包含您想要的两列以及对应于表employee和company的外键约束。 也可以使用注释指定freign键名称

@Entity
@Table(name = "company")
public class Company {
...
@OneToMany// or @ManyToMany
@JoinTable(name = "table_name",
    joinColumns = @JoinColumn(name="employeeId", referencedColumnName="id"),
    inverseJoinColumns = @JoinColumn(name="companyId",  referencedColumnName="id"))
private List<Employee> employeeList;