У меня есть два лицаКак Итерации Списка объектов QueryDSl упомянутых другого объекта QueryDSL во время применения фильтра для запроса
@Entity
@Table(name = "employee")
public class Employee {
............
@ManyToMany(mappedBy = "employees")
private ArrayList<Department> departments = new ArrayList<>();
...getter..setters'
и
@Entity
@Table(name = "department")
{
...............
@ManyToMany
@JoinTable(
name = "m_employee_department",
joinColumns = @JoinColumn(name = "department_id", referencedColumnName = "department_id"),
inverseJoinColumns = @JoinColumn(name = "employee_id", referencedColumnName = "employee_id"))
private ArrayList<Employee> employees;
Я использую QueryDsl над JPA. В пользовательском интерфейсе я хочу искать всех сотрудников с фильтром в качестве отдела. Там, где сотрудники и отдел находятся во многих отношениях. По этой причине я хочу, чтобы применить фильтр в моем QueryDsl запросе что-то вроде
QDepartment department = QDepartment.department;
QEmployee employee = QEmployee.employee;
if (departments != null && departments.size() > 0) {
BooleanExpression booleanExpression = null;
for (int count = 1; count < categories.size(); count++) {
booleanExpression = booleanExpression.or(
employee.departments._____(department.get(count)));
}
builder.and(booleanExpression);
}
но проблема employee.department возвращает SimplePath> и я хочу, чтобы перебирать это так, что я могу соответствовать employee.departments с идентификаторами department.id (получение от UI)