Ответ 1
Должно быть так:
Query query = sess().createQuery("from UserProfile where firstName LIKE :name").setParameter("name", "%"+name+"%");
В вашем случае ':name'
- фактическая строка, которую будет искать Hibernate. Если вам нужен настоящий именованный параметр, вам нужно просто :name
.
Таким образом, %
следует передать как значение :name
, а Hibernate заменит :name
на фактическое значение.
Обратите внимание, что если ваше значение содержит %
, и вы хотите, чтобы оно было фактическим письмом вместо подстановочного знака, вам нужно будет его избежать, здесь является примером класса escaper.