У меня есть функция в базе данных PostgreSQL, которая ищет простой текстовый файл на сервере и обрабатывает данные внутри файла.Функция SQL изменяет кодировку клиента на LATIN1
из-за формата загруженного файла (SET client_encoding ='LATIN1';
).Когда я выполняю функцию локально (с помощью PgAdmin), она работает, но когда я выполняю функцию с помощью собственного запроса JPA, я получаю эту ошибку:
Internal Exception: org.postgresql.util.PSQLException: The server's client_encoding parameter was changed to LATIN1. The JDBC driver requires client_encoding to be UTF8 for correct operation.
Это моя функция JPA:
public boolean importFile() {
boolean res = false;
try {
getEntityManager().getTransaction().begin();
getEntityManager().createNativeQuery("SELECT import()").executeUpdate();
getEntityManager().getTransaction().commit();
res = true;
} catch (Exception e) {
e.printStackTrace();
getEntityManager().getTransaction().rollback();
System.err.println("Error: " + e.getMessage());
}
return res;
}
Если имеет значение, я использую EclipseLink (JPA 2.1), JSF 2.2 (PrimeFaces 6.1), PostgreSQL 9.5.8.