我正在使用Hibernate命名查询。 GetEmployerWithActiveEmployeeList
public class Employer {
.
.
@OneToMany(mappedBy = "employer", cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
private Set<Employee> employee;
.
.
}
public class Employee {
...
@ManyToOne(cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.MERGE })
@JoinColumn(name = "employer_id")
private Employer employer;
...
}
现在我想将命名查询写入fetchEmployerWithActiveEmployee
我的命名查询就像这样
"from Employer employer left join employer.employees emp where employer.id=:employerId and emp.status = 1"
当我检查雇主对象时,它让我向我展示所有员工。
这是否可以在休眠状态下使用?
答案 0 :(得分:0)
您的查询会选择至少拥有一名活跃员工的雇主。但是,这种“积极的员工”条件只是一个标准。选定的雇主对象仍包含所有员工。
你可能想要这样的东西:
select emp from Employer employer left join employer.employees emp where employer.id=:employerId and emp.status = 1
(注意“选择emp”) 然后结果应该是Employee对象的列表。