我试图通过自己制作一些 POC 来了解 JPA 是如何工作的。
我创建了一些实体,它们是这样的:
@Entity
@Table(name = "Employee")
public class Employee implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String firstName;
private String lastName;
@ManyToMany
@JoinTable(name="SKILLS_EMPLOYEES")
private List<Skill> skills;
@ManyToOne
private Company company;
public Employee() {
}
public Employee(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
//[..getters & setters...]
public void addSkill(Skill skill) {
this.skills.add(skill);
skill.addEmployee(this);
}
public void setCompany(Company company) {
this.company = company;
this.company.addEmployee(this);
}
}
@Entity
@Table(name = "Company")
public class Company implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String companyName;
private List<Employee> employee;
public Company() {
}
public Company(String companyName) {
this.companyName = companyName;
}
//[..getters & setters...]
public void setEmployee(List<Employee> employee) {
this.employee = employee;
}
public void addEmployee(Employee employee) {
this.employee.add(employee);
}
}
所以,一个公司可以有员工,一个员工只能有一个公司,但是在我的数据库中,glasshfish 在员工和公司之间创建了一个表。
员工 :
- ID
- 名
- 姓
- COMPANY_ID
公司 :
- ID
- 公司名
公司职员 :
- 公司_ID
- 员工ID
我做错什么了 ?