如何指定被通配符包围的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] 

非常感激!

怎么样

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

我很确定我曾经解决过你的问题。

作为参考,你也可以使用CONCAT:

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

query.setParameter(someSymbol,“%”+ someSymbol +“%”);