Я использую Hibernate версии 5.4.2.
Я использую CriteriaBuilder & CriteriaQuery, чтобы сгенерировать запрос критерия, чтобы получить некоторые результаты со свойством «name» запрошенной объединенной таблицы, но я получаю исключение во время этого процесса.Я хочу проверить, совпадает ли имя сотрудника со строкой, которую я упомянул.Сотрудник - это свойство OneToMany внутри Project. Вот запрос:
CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder();
CriteriaQuery<ProjectTable> criteriaQuery =
criteriaBuilder.createQuery(Project.class);
Root<ProjectTable> projectTableRoot = criteriaQuery.from(Project.class);
projectTableRoot.alias("employee");
Predicate employeePredicate =criteriaBuilder.like(projectTableRoot.get("employee").get,"%"+ StringUtils.lowerCase(employee.getName()) + "%");
public class ProjectTable {
@OneToMany(mappedBy = "projectTable", cascade = CascadeType.ALL, fetch =
FetchType.LAZY)
private List<Employee> employee= Lists.newArrayList();
}
public class EmployeeTable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "project_employee_fk", referencedColumnName = "id")
@DiffIgnore
private ProjectTable projectTable;
}