The relationship between employee and project is ManyToMany
Employee.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | @Data @Entity @Table (name = "employees" ) public class Employee extends Parent { @Id @Column (name = "employee_id" ) @GeneratedValue (strategy = GenerationType.AUTO) private Long employeeId; @Column (name = "first_name" ) private String firstName; @Column (name = "last_name" ) private String lastName; @ManyToMany (cascade = {CascadeType.ALL}) @JoinTable ( name = "employees_projects" , joinColumns = { @JoinColumn (name = "employee_id" )}, inverseJoinColumns = { @JoinColumn (name = "project_id" )} ) Set<Project> projects = new HashSet<Project>(); } |
Project.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @Data @Entity @Table (name = "projects" ) public class Project extends Parent{ @Id @Column (name = "project_id" ) @GeneratedValue (strategy = GenerationType.AUTO) private Long projectId; @Column (name = "title" ) private String title; @ManyToMany (mappedBy = "projects" , cascade = {CascadeType.ALL}) private Set<Employee> employees = new HashSet<Employee>(); } |
EmployeeRepository.java
1 2 3 4 | @Repository public interface EmployeeRepository extends JpaRepository<Employee, Long> { } |
ProjectRepository.java
1 2 3 4 | @Repository public interface ProjectRepository extends JpaRepository<Project, Long> { } |