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

通过在单引号之前添加另一个单引号来转义单引号,例如'将变为''.

我不认为这~是一个非法字符,它只是让你挂断的单引号。

注意:我认为您可以用以下正则表达式替换所有单引号,(?!<')['](?!')因此您可以执行类似..

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