RNJ*_*RNJ 27 java sql jpa named-query
是否可以在命名查询的where子句中使用like?我正在努力做以下事情,但我得到例外
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like :city and " +
"lower(p.countryName) like :countryName");
Run Code Online (Sandbox Code Playgroud)
我尝试添加%,就像在普通SQL中那样,但是会编译异常.
任何指针非常感谢!
谢谢
ese*_*sej 51
您不能拥有%NamedQuery
,但您可以在分配参数的值中使用它.
如:
String city = "needle";
query.setParamter("city", "%" + city + "%");
Run Code Online (Sandbox Code Playgroud)
小智 8
您也可以使用CONCAT功能
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like CONCAT(:city,'%')");
Run Code Online (Sandbox Code Playgroud)
小智 6
@Query("select c from Curso c where c.descripcion like CONCAT(:descripcion,'%')")
List<Curso> findByDescripcionIgnoreCase(@Param("descripcion") String descripcion);
Run Code Online (Sandbox Code Playgroud)