wor*_*ing 3 java mysql hibernate
我有两个表部门和员工,一个部门可以有很多员工。
如果我必须通过将 DepartmentId 作为外键来使用 hibernate 对数据库中的员工表进行建模,那么我有两个选项可用。
a) 我可以在 Department 类中创建一个列表
b) 在 Employee 类中的referencedColumnName='departmentId' 上使用@ManyToOne 和@JoinColumn。
推荐哪种方法?或者这两种方法用于完全不同的问题?
首先,这里有两个实体部门和员工。其次,我们必须了解ManyToOne这里的含义,正如您所说,一个部门可能有许多员工。
映射就像,请注意这只是一个片段:
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@GeneratedValue
@Column(name="employee_id")
private Long employeeId;
@Column(name="firstname")
private String firstname;
@Column(name="lastname")
private String lastname;
@ManyToOne
@JoinColumn(name="department_id")
private Department department;
// Getter and Setter methods
Run Code Online (Sandbox Code Playgroud)
}
@Entity
@Table(name="DEPARTMENT")
public class Department {
@Id
@GeneratedValue
@Column(name="department_id")
private Long departmentId;
@Column(name="department_name")
private String departmentName;
@OneToMany(mappedBy="department")
private Set<Employee> employees;
// Getter and Setter methods
Run Code Online (Sandbox Code Playgroud)
}
由于bi-directional此处存在关系,因此一方将是此处关系的所有者。注释@JoinColumn表明该实体是关系的所有者。也就是说,对应的表有一个列有被引用表的外键,而属性mappedBy表示这一侧的实体是关系的逆,所有者驻留在“其他”实体中。
| 归档时间: |
|
| 查看次数: |
3483 次 |
| 最近记录: |