public abstract class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // Getters and setters } @Entity @Table(name = "employees") public class Employee extends BaseEntity { private String firstName; private String lastName; // Getters and setters } @Entity @Table(name = "managers") public class Manager extends Employee { private String department; // Getters and setters } @Entity @Table(name = "departments") public class Department { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(mappedBy = "department") private List<Employee> employees; // Getters and setters } @Entity @Table(name = "employees") public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne @JoinColumn(name = "department_id") private Department department; // Getters and setters } @Entity @Table(name = "departments") public class Department { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToMany(mappedBy = "department", fetch = FetchType.LAZY) private List<Employee> employees; // Getters and setters } @Entity @Table(name = "employees") @Cacheable public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // Other fields // Getters and setters } public List<Employee> getEmployeesByDepartment(String departmentName) { Query query = entityManager.createQuery("SELECT e FROM Employee e JOIN e.department d WHERE d.name = :departmentName"); query.setParameter("departmentName", departmentName); return query.getResultList(); }


上一篇:
下一篇:JPOX Core vs
切换中文