从数据库检索数据时,是否需要在hibernate一对多映射中添加一个额外的列?

从数据库检索数据时,是否需要在hibernate一对多映射中添加一个额外的列?,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,这是我的员工表 +----+------------+-----------+--------+ | id | first_name | last_name | salary | +----+------------+-----------+--------+ | 1 | Manoj | Kumar | 5000 | +----+------------+-----------+--------+ 这是我使用一对多映射的证书表 +----+---------------

这是我的员工表

+----+------------+-----------+--------+
| id | first_name | last_name | salary |
+----+------------+-----------+--------+
| 1  | Manoj      | Kumar     |   5000 |
+----+------------+-----------+--------+
这是我使用一对多映射的证书表

+----+------------------+-------------+
| id | certificate_name | employee_id |
+----+------------------+-------------+
| 1  | MBA              |          1  |
| 2  | PMP              |          1  |
| 3  | MCA              |          1  |
+----+------------------+-------------+
现在,为了检索数据,我可以使用
session.createCriteria(Employee.class)

是否需要在证书实体类中添加员工id的加入列


我是否可以在不添加列
员工id
的情况下获得
证书\u name
?如果是,如何操作?

有必要在证书表中添加一个额外的列,那么您的员工实体应该如下所示:

   @Entity
    public class Employee {

       @Id
       @Column(name = "id")
       @GeneratedValue(strategy = GenerationType.AUTO)
       private Long langId;

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

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

       @OneToMany(fetch = FetchType.EAGER)
       @JoinColumn(name = "id", referencedColumnName = "employee_id")
       private Set<Certificate> certificates;
@实体
公营雇员{
@身份证
@列(name=“id”)
@GeneratedValue(策略=GenerationType.AUTO)
私人长兰吉德;
@列(name=“first_name”)
私有字符串名;
@列(name=“last_name”)
私有字符串lastName;
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name=“id”,referencedColumnName=“employee\u id”)
专用集证书;

我是否需要在证书实体类中添加员工id的“加入”列?我不是这样问的。是的,您确实需要一个“加入”列。非常感谢。编辑您的答案并在其中写下您最后的评论,然后我将向上投票