powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA срипт sql с русскими символами.
17 сообщений из 17, страница 1 из 1
JPA срипт sql с русскими символами.
    #38903329
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый!
есть sql скрипт, который вставляет в таблицу (БД Postgres) исходный данные (русские символы)/
Код: xml
1.
<property name="javax.persistence.sql-load-script-source" value="sql/insert.sql"/>



Код: plsql
1.
INSERT INTO test (id,text_test) VALUES (nextval('hibernate_sequence'),'Тест');


в БД попадает такая вот запись вместо слова Тест:
Код: xml
1.
"Тест"



куда копать, подскажите пожалуйста?
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903353
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

а что если использовать фильтр?
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903366
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

я в этом пока что не особо шарю. Можно подробнее?

Кстати, а может на кодировку вставляемых данных влиять кодировка в WildFly?
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903391
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

если честно я тоже не все знаю а только изучаю, но недавна столкнулся с этой проблемой :)
вообшем попробуйте создать фильтр типа:

Код: java
1.
2.
request.setCharacterEncoding(_filterConfig.getInitParameter("codepage"));
chain.doFilter(request, response);



а в web.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<filter>
  <filter-name>FilterCharset</filter-name>
  <filter-class>***</filter-class><!--указываете пакет с вашим классом в моем случае demo.util.FilterCharset-->
  <init-param>
    <param-name>codepage</param-name>
    <param-value>UTF8</param-value><!--я использую кодировку UTF-8-->
  <init-param>
</filter>
<filter-mapping>
  <filter-name>FilterCharset</filter-name>
  <url-pettern>/*</url-pettern><!--что бы все респонсы и реквесты проходили через этот фильтр-->
</filter-mapping>
</filter>



если есть ошибки то исправьте пожалуйста. :)
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903394
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

боюсь, что это немного не то. мой скрипт выполняется при деплое приложения, web.xml никакого отношения к нему не имеет.
в persistence.xml указывается свойство "javax.persistence.sql-load-script-source" и путь к скрипту. После создания таблиц выполняется скрипт
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903396
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

у Вас веб приложения?
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903399
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

решил проблему. В консоль хибер выводит в неверной кодировке, а в БД вставляет правильно.
решил так:
В параметры запуска WildFly добавил -Dfile.encoding="UTF-8"
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903401
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

у меня ear (ejb+war)
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903403
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

это хорошо.

З.Ы. а что если когда нибудь придеться развертывать Ваши приложения на другом сервере?
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903405
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

а настраивать сервер по-любому придется. Там же нужно еще datasource добавлять :)
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903409
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

тоже вариант, вообщем я у себя решил эту проблему таким образом.
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903496
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прежде чем пробовать надо понять где косяк.
Настраивать контейнер на кодировку здорово, а что если след скрипт напишете в другом редакторе с другой по умолчанию кодировкой?

В notepad++ можно посмотреть кодировку файла и можно даже перекодировать. Так что как вариант сделайте несколько вариантов этого sql файла в разной кодировке и проверьте какой вам подходит.

Лучше определить единую кодировку для проекта, и работать с ней. Тогда и соединение с БД и скрипты делать на единой кодировке.


Можно еще открыть в дебаггере то место где скрипт исполняется и посмотреть стринговую переменную в которой хранится запрос, и убедится что там все в порядке и корявых символов нет. Это позволит убедиться что скрипт грузится с верной кодировкой. Тогда смотреть в сторону настройки соединения с БД (там тоже обычно можно указать используемую кодировку при соединении)
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903817
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming,

перед тем как лезть к настройкам контейнера я все проверил. Везде была кодировка UTF-8
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38903989
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel,

а что если с клиента приходит не в UTF-8 а каком нибудь другом кодировке? :) вроде так возможно или нет? :)
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38904154
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,

даже не представляю, каким образом такое возможно))
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38904802
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
danatriel
Код: plsql
1.
INSERT INTO test (id,text_test) VALUES (nextval('hibernate_sequence'),'Тест');



Исльзуйте prepared statement, а не инлайн значений. Не храните не ASCII символы в коде.

danatrielв БД попадает такая вот запись вместо слова Тест:
Код: xml
1.
"Тест"



куда копать, подскажите пожалуйста?
Судя по всему, драйвер и Java нормально распознали строку и отправили её в виде UTF-8. Но БД или таблица у вас настроены на Cp1251.
...
Рейтинг: 0 / 0
JPA срипт sql с русскими символами.
    #38905075
danatriel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
А как можно не хранить русские символы в скрипте, когда таблицу нужно заполнить именно ими (по требованию заказчика)?
БД на UTF-8 настроена. Пришлось поменять настройки запуска WildFly, только так все нормально заработало. Другого пути, к сожалению, не нашел. Если он есть - подскажите, пожалуйста.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JPA срипт sql с русскими символами.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]