Возможно, вам нужно
criteria.add(cb.like(emp.<String>get("name"), p));
, потому что первый аргумент like()
равен Expression<String>
, а не Expression<?>
, как в equal()
.
Другой подход заключается в том, чтобы включить генерациюстатическая метамодель (см. документацию по вашей реализации JPA) и использование типизированного API Criteria:
criteria.add(cb.like(emp.get(Employee_.name), p));
(обратите внимание, что вы не можете получить статическую метамодель из em.getMetamodel()
, вам нужно сгенерировать ее с помощью внешних инструментов).