Проблема с JPA Order By и шведскими символами - PullRequest
2 голосов
/ 23 февраля 2010

У меня проблема с заказом в JPA-запросе. Запрос тривиален и ведет себя, как и ожидалось, в sql-клиенте. Проблема в шведских символах å, ä и ö (должны быть в таком порядке). При выполнении запроса через JPA (Hibernate) å и ä находятся в неправильном порядке (ä, å, ö).

Нет разницы между Oracle и HslqDB и нет разницы между моим локальным ПК с Windows и машиной Linux в тестовой среде.

Я пробовал стандартный JPA-запрос, собственный JPA-запрос, собственный запрос Hibernate и API критериев Hibernate. Порядок неверен во всех случаях.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 23 февраля 2010

Вы сталкиваетесь с тем, что называется «сопоставлением» в мире баз данных. Я знаю, что Oracle поддерживает много разных языков и затем правильно обработает ваше предложение ORDER BY.

Найдите информацию в документации Oracle о возможных значениях переменной сеанса Oracle NLS_SORT. Я нашел это

Установите параметры сортировки следующим образом:

ALTER SESSION SET NLS_SORT = SWEDISH

Затем выполните запрос в приглашении оракула. Если вы убедитесь, что вы установили это для каждого соединения, у вас все будет в порядке.

Так что проблема не в JPA / Hibernate или даже в JDBC.

0 голосов
/ 06 мая 2014

Я использую JPA с пулом dbcp.

Мне NLS_SORT можно изменить, используя параметр JAVA_OPTS "user.language".

В моей среде значение -Duser.language = pt решило проблему.

0 голосов
/ 23 февраля 2010

Какой спящий диалект вы указываете? Это может иметь значение. Вот статья , касающаяся смежных вопросов (хотя и для Mysql).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...