Я пытаюсь понять, как работает JPA, сделав мой POC самостоятельно.Java EE с 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
- FIRSTNAME
- LASTNAME
- company_id
Компания:
- ID
- COMPANYNAME
Company_Employee:
- company_id
- EMPLOYEE_ID
Что я сделал не так?
Спасибо! Это работает сейчас =) –