-2
我有兩個表,僱員和項目,具有多對多的關係。我應該如何編寫HQL來獲取員工正在工作的所有項目?如何使用HQL從多對多的表中獲得結果
我有兩個表,僱員和項目,具有多對多的關係。我應該如何編寫HQL來獲取員工正在工作的所有項目?如何使用HQL從多對多的表中獲得結果
您不需要編寫查詢。如果你已經建立了與@ManyToMany
的關係,那麼你可以得到一個員工,然後employee.getProjects()
將返回正確的數據。
public class Employee {
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "employee_project",
joinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id")
)
private Collection<Project> projects;
}
public class Project {
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "employee_project",
joinColumns = @JoinColumn(name = "project_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "id")
)
private Collection<Employee> employees;
}
感謝您的回覆。 對不起,我是一個新手在java ....那麼我如何創建一個api或「方法」在Employee/Project類的服務implementationaion文件? – Nitu
這是一個不同的問題。 – Gregg