How to specify a JPA named parameter surrounded by wildcards?

JavaHibernateJpaNamed Parameters

Java Problem Overview


How would I specify a JPA query like:

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

followed by:

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

and not triggering a

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

Much appreciated!

Java Solutions


Solution 1 - Java

How about

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

I'm pretty sure I once solved your problem like that.

Solution 2 - Java

For reference, you could also use CONCAT:

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

Solution 3 - Java

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionReuben Peter-PaulView Question on Stackoverflow
Solution 1 - JavamusiKkView Answer on Stackoverflow
Solution 2 - JavaxtianView Answer on Stackoverflow
Solution 3 - JavaChinmoyView Answer on Stackoverflow