Подтвердить что ты не робот

Как указать JPA-параметр, окруженный подстановочными знаками?

Как я могу указать запрос JPA, например:

Query q = 
  em.createQuery(
    "SELECT x FROM org.SomeTable x WHERE x.someString LIKE '%:someSymbol%'"
  );

а затем:

q.setParameter("someSymbol", "someSubstring");

и не запускать

org.hibernate.QueryParameterException: could not locate named parameter [id]

Очень ценно!

4b9b3361

Ответ 1

Как насчет

Query q = 
  em.createQuery(
    "SELECT x FROM org.SomeTable x WHERE x.someString LIKE :someSymbol"
);
q.setParameter("someSymbol", "%someSubstring%");

Я уверен, что однажды решил вашу проблему.

Ответ 2

Для справки вы также можете использовать CONCAT:

like CONCAT('%', :someSymbol, '%')

Ответ 3

query.setParameter(someSymbol, "%" + someSymbol + "%" );