2

私は次のようなクエリを実行しています:

Query query = PlatoonApp.getEntityManager().createQuery(
                "SELECT c FROM Client c WHERE c.type1 LIKE ? or c.type2 LIKE ? or c.type3 LIKE ?" +
                " or c.type4 LIKE ? ORDER BY c.type", Client.class);

        query.setParameter(1, legalStrQuery + "%");
        query.setParameter(2, legalStrQuery + "%");
        query.setParameter(3, individualStrQuery + "%");
        query.setParameter(4, individualStrQuery + "%");

        query.setFirstResult(startPosition);

        if (maxResults != 0)
            query.setMaxResults(maxResults);

        return (List<Client>) query.getResultList();

これがクエリです。「´」、「~」を使用した情報を含む行がいくつかあり、これらの文字が置き換えられています。なぜそれが起こっているのですか?

4

1 に答える 1

0

一重引用符の前に別の一重引用符を追加して、一重引用符をエスケープします。たとえば、bebe に'なり''ます。

~私は theが不正な文字だとは思いません。

注:すべての一重引用符を次の正規表現に置き換えることができると思う(?!<')['](?!')ので、次のようなことができます..

stringInstance.replaceAll( "(?!<')['](?!')", "''" );
于 2012-08-31T20:16:28.350 に答える