Java 如何存储单个实体而不是集合?

Java 如何存储单个实体而不是集合?,java,hibernate,Java,Hibernate,我需要创建一个实体来存储我的员工的历史记录。这是我的桌子 创建表employee\u history id INT NOT NULL主键自动递增, 员工id INT, 公司id INT, 雇用日期默认为空, 辞职日期默认为空, 外键员工id引用员工id, 外键公司id引用公司id ; 问题是我只需要存储一个实体EmployeeHistory,而不是集合。有没有办法解决这个问题 UPD: 员工Mike的结果: 1, Mike, GridDynamics, 2000-08-10, 2003-0

我需要创建一个实体来存储我的员工的历史记录。这是我的桌子

创建表employee\u history id INT NOT NULL主键自动递增, 员工id INT, 公司id INT, 雇用日期默认为空, 辞职日期默认为空, 外键员工id引用员工id, 外键公司id引用公司id ; 问题是我只需要存储一个实体EmployeeHistory,而不是集合。有没有办法解决这个问题

UPD:

员工Mike的结果:

1, Mike,  GridDynamics,  2000-08-10,  2003-01-01
2, Mike,  IBM,           2012-04-03,  2014-02-15
3, Mike,  GridDynamics,  1997-04-17,  1998-03-08
UPD2:

我的公司实体类

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

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column
    private String name;

    @JoinColumn(name = "company_id")
    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty("employees")
    private List<Employee> employees;

考虑到您有许多与员工相关的历史记录

您可以创建一个名为EMPLOYEE的表和另一个名为EMPLOYEE\u HISTORY的表

现在要存储员工历史记录,假设一个员工有5条记录

您可以在EMPLOYEE中创建包含员工详细信息的条目


您可以在EMPLOYEE_HISTORY中包含FK_EMPLOYEE,它会将历史记录表中的所有记录映射到EMPLOYEE表中唯一的EMPLOYEE条目,因此您可以将所有5条历史记录都关联到一名员工。

OneToOne映射有什么问题?因此,您似乎需要在EmployeeHistory中对员工和公司进行一对一映射。问题到底是什么?问题是存储员工历史记录,并在其中收集记录。我需要组装由连接组成的复杂对象。你能提供你的实体类吗?在员工和公司之间使用@OneToOne映射完全符合您的要求。根据你的回答,问题出在其他地方。是的,当然。我更新了问题。因此,您需要创建另一个名为employee_history的表,并创建所有历史事务。确保这些条目与您在employee表中执行的employee条目相关联。只有一个实体不足以存储这样的关系数据。所以迭代集合并执行历史记录表中的所有条目。那么问题是什么呢?我只需要一个实体,不需要集合。这就是问题的本质。从您编辑的代码中,我可以看出没有唯一的标识符,您可以使用它将历史记录与员工关联,必须有一个像idlet us这样的标识符
@Entity
@Table(name = "employee")
public class Employee implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JsonProperty("id")
    Integer id;

    @Column
    @JsonProperty("name")
    String name;

    @ManyToOne
    @JoinColumn(name = "company_id", nullable = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonProperty("company")
    private Company company;