Я использую Java Spring для веб-службы, над которой я работаю. Есть запрос, с которым у меня возникли проблемы с работой.
В MySQL Workbench этот запрос работает нормально:
SELECT * from Employees e
WHERE e.personnel_type like 'Full Time'
AND e.branch like '%%'
AND e.office like '%%'
Обратите внимание на branch
и office
пустые, не поставляются.
Если я запустил этот запрос в MySQL, я получу всех сотрудников, которые работают «полный рабочий день», независимо от branch
или office
.
Однако в моем запросе JPA:
@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
@Query("
FROM Employees e
WHERE e.personnelType like :personnelType
AND e.branch like %:branch%
AND e.officelike %:office%
");
List<Object[]> employeeSearch(
@Param("personnelType") String personnelType,
@Param("branch") String branch,
@Param("office") String office
);
Если я не предоставлю branch
или office
, я ничего не получу; похоже, что подстановочный знак %%
не работает.
Однако, если я поставлю branch
и office
, я получу записи, которые должен.
Что я делаете неправильно?