34

名前付きクエリの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の場合と同じように%を追加しようとしましたが、コンパイル時に例外が発生します。

どんなポインタでも大歓迎です!

ありがとう

4

5 に答える 5

64

に % を含めることはできませんがNamedQuery、パラメーターに割り当てる値に含めることはできます。

次のように:

String city = "needle";
query.setParamter("city", "%" + city + "%");
于 2012-06-06T10:25:10.770 に答える
7
@Query("select c from Curso c where c.descripcion like CONCAT(:descripcion,'%')")

List<Curso> findByDescripcionIgnoreCase(@Param("descripcion") String descripcion);
于 2016-12-07T21:16:30.750 に答える
0

位置パラメータを使用している場合は、この方法を使用できます

@Query("select p from ABC p where p.name like CONCAT('%',?1,'%') ")
于 2020-10-17T14:45:42.370 に答える