Как указать именованный параметр JPA, окруженный символами подстановки? - PullRequest
44 голосов
/ 12 мая 2011

Как бы я указать запрос 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]

Очень ценится!

Ответы [ 3 ]

73 голосов
/ 12 мая 2011

Как насчет

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

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

36 голосов
/ 04 января 2015

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

like CONCAT('%', :someSymbol, '%')
3 голосов
/ 30 июня 2016

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...