Java-Hibernate在select查询中不返回特殊字符

Java-Hibernate在select查询中不返回特殊字符,java,mysql,hibernate,character-encoding,Java,Mysql,Hibernate,Character Encoding,我正在做这样一个查询: 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); que

我正在做这样一个查询:

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();
Query Query=platonapp.getEntityManager().createQuery(
“从客户端c中选择c,其中c.type1 LIKE?或c.type2 LIKE?或c.type3 LIKE?”+
“或c.type4类?按c.type订购”,客户类别);
setParameter(1,legalStrQuery+“%”);
setParameter(2,legalStrQuery+“%”);
query.setParameter(3,individualStrQuery+“%”);
query.setParameter(4,individualStrQuery+“%”);
query.setFirstResult(startPosition);
如果(maxResults!=0)
query.setMaxResults(maxResults);
return(List)query.getResultList();

这就是问题所在。我有一些行的信息使用“'),“~”,这些字符正在被替换。为什么会发生这种情况?

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

我不认为
~
是一个非法字符,它只是一个引语让你挂断了电话


注意:我认为您可以用以下正则表达式替换所有单引号,
(?!通过在单引号之前添加另一个单引号来转义单引号,例如,
将变为

我不认为
~
是一个非法字符,它只是一个引语让你挂断了电话


注意:我认为可以用以下正则表达式替换所有单引号,
(?!@Nambari与另一个字符。当我在mysql命令行中执行SELECT时,字符将按其应有的方式输出。hibernate cfg.xml中定义的字符编码是什么?@Nambari编码是utf-8@Nambari当我在mysql命令行中执行SELECT时,字符会按它们应该的方式显示出来。这是什么hibernate cfg.xml?@Nambari中定义的字符编码编码是utf-8
stringInstance.replaceAll( "(?!<')['](?!')", "''" );