2014-12-28 1 views
1

У меня есть запрос SQL, который отлично работает в окне запроса SQL сервера и возвращает результатыjpql эквивалента этого SQL-запрос (запрос из национальных символов)

SQL запрос:

select * from table1 where title = N'تست' 

если положить, что ' N 'в моем запросе в sql, запрос получает результаты, и если я не поставлю' N ', результаты не будут возвращены.

вопрос в том, как я могу получить этот запрос в формате jpql (с этим «N»)?

спасибо за ответ

+0

Имеет ли запрос jpql правильный результат, если вы даете запрос как «от где title =: title»? и использовать setParameter (название, «تست») (без символа N)? –

+0

Я не получаю никаких результатов, когда я использую этот jpql: выберите a от a где a.title = 'تست' – Lithium

+0

Попробуйте решения [этого вопроса SO] (http://stackoverflow.com/questions/5237280/get-hibernate-and-sql-server-to-play-nice-with-varchar-and-nvarchar) –

ответ

1

Попробуйте установить это свойство Hibernate:

hibernate.connection.defaultNChar=true 

Если используется внешний источник данных (внешнее соединение пула как HikariCP), то вы хотите установить следующее свойство в JDBC connection URL:

sendStringParametersAsUnicode=true 
+0

Я установил эту настройку и не работал для меня. пока я решил это, изменив сопоставление базы данных с PERSIAN, потому что у SQL-драйвера jdbc были некоторые проблемы. спасибо в любом случае – Lithium

+0

В большинстве проектов, над которыми я работал, мы установили нашу базу данных в UTF8, а также кодировку веб-сервера - UTF8. –

Смежные вопросы