如何指定由通配符包围的JPA命名参数?

时间:2011-05-12 19:21:42

标签: java hibernate jpa named-parameters

如何指定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 个答案:

答案 0 :(得分:72)

怎么样

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

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

答案 1 :(得分:35)

供参考,您也可以使用CONCAT:

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

答案 2 :(得分:3)

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