名前付きクエリのwhere句にlikeを含めることはできますか?私は次のことをしようとしていますが、例外が発生しています
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like :city and " +
"lower(p.countryName) like :countryName");
通常のSQLと同じように%を追加しようとしましたが、例外のコンパイルが発生しました。
ポインタは大歓迎です!
ありがとう
NamedQuery
に%を含めることはできませんが、パラメーターに割り当てる値に含めることはできます。
次のように:
String city = "needle";
query.setParamter("city", "%" + city + "%");
CONCAT関数も使用できます
@NamedQuery(name = "Place.getPlaceForCityAndCountryName",
query = "SELECT p FROM Place p WHERE " +
"lower(p.city) like CONCAT(:city,'%')");
@Query("select c from Curso c where c.descripcion like CONCAT(:descripcion,'%')")
List<Curso> findByDescripcionIgnoreCase(@Param("descripcion") String descripcion);