Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何配置OpenJPA编码?_Java_Mysql_Encoding_Utf 8_Openjpa - Fatal编程技术网

Java 如何配置OpenJPA编码?

Java 如何配置OpenJPA编码?,java,mysql,encoding,utf-8,openjpa,Java,Mysql,Encoding,Utf 8,Openjpa,我对OpenJPA有意见。我用它在MySQL数据库中保存值。在这些值中,有一个字符串值具有西班牙语字符(á)。数据被正确地持久化,特殊字符在数据库中被完美地显示 在我的Java程序中,当我试图用一个具有这个特殊字符的参数查询DB时,问题就出现了。下面是一个例子: private static final String getPerdiodoEstadoAfiliacionParaOS = "SELECT x FROM PeriodoAfiliacion x WHERE

我对OpenJPA有意见。我用它在MySQL数据库中保存值。在这些值中,有一个字符串值具有西班牙语字符(á)。数据被正确地持久化,特殊字符在数据库中被完美地显示

在我的Java程序中,当我试图用一个具有这个特殊字符的参数查询DB时,问题就出现了。下面是一个例子:

    private static final String getPerdiodoEstadoAfiliacionParaOS = 
        "SELECT x FROM PeriodoAfiliacion x WHERE " +
            "x.obraSocial=?1 " +
            "AND x.tipoPeriodoAfiliacion LIKE ?2";

    public static List<PeriodoAfiliacion> getPerdiodoEstadoAfiliacionParaOS(EntityManager em, ObraSocial os, String periodoABuscar) {
        if(os==null) return new ArrayList<PeriodoAfiliacion>();

        Query query = em.createQuery(getPerdiodoEstadoAfiliacionParaOS);
        query.setParameter(1, os);
        query.setParameter(2, periodoABuscar);
        return query.getResultList();
    }
private静态最终字符串getperdiodoestatadoafiliacionparaos=
“从PeriodoAfiliacion x中选择x,其中”+
“x.obraSocial=?1”+
“和x.TipoperiodoFiliacion类似?2”;
公共静态列表getPerdiodoEstadoAfiliacionParaOS(EntityManager em、Objrasocial os、String periodoABuscar){
如果(os==null),则返回新的ArrayList();
Query Query=em.createQuery(getPerdiodoEstadoAfiliacionParaOS);
query.setParameter(1,os);
query.setParameter(2,periodoABuscar);
返回query.getResultList();
}
参数2(显示为?2)是一个字符串,其中包含一个特殊字符。 当实际存在数据时,查询返回为空

我知道问题出在特殊字符上,因为如果我将另一个没有特殊字符的字符串作为参数传递,查询将返回预期结果

所以,我不知道真正的问题是什么。我想这与参数从OpenJPA传递到DB引擎的方式有关


你们有什么建议吗。你在用MySql吗?嗨!对不起,我没有回答。我从未收到你的评论通知。没关系,我放弃了,把所有的特殊角色都带了出来:)