55

我将如何指定 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]

非常感激!

4

3 回答 3

88

怎么样

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

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

于 2011-05-12T19:28:37.150 回答
59

作为参考,您还可以使用 CONCAT:

like CONCAT('%', :someSymbol, '%')
于 2015-01-04T14:15:49.190 回答
4

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

于 2016-06-30T09:11:45.807 回答