2015-11-17 5 views
0

Я пытаюсь найти слово Farsi в базе данных MySQL. Таблица заполнена правильно, и я могу видеть и искать слова, используя MySQLWorkbench. Я даже установил JDBC-Performance-Logger и зарегистрировал сгенерированный оператор и вставлял его в MySQLWorkbench, и запись могла быть найдена успешно.PlayFramework и поиск слова Farsi в базе данных MySQL

Моя проблема только в PlayFramework с использованием EBean, которую String не может найти, и каждый раз возвращает пустой результат.

вот мой application.conf:

db.default.driver=com.mysql.jdbc.Driver 
db.default.url="jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8" 
db.default.useUnicode=true 
db.default.characterEncoding=UTF-8 

И это функция, которая возвращает пустой результат:

final String cityName = "تهران"; 

final List<City> cities = City.find.where().like("name", "%" + cityName + "%").findList(); 

//final List<City> cities = City.find.select("name").where().eq("name", cityName).findList(); 

return ok(toJson(cities)); 

он генерирует эту инструкцию SQL (найденную с помощью JDBC-Performance-Logger) :

select t0.id c0, t0.name c1, t0.province c2 from city t0 where t0.name like 'تهران' /*setString*/ escape'' 

Возможно вообще не искать символов фарси в Play Framework?

ответ

0

изменения строки подключения к этому решена проблема:

db.default.url="jdbc:mysql://localhost:3306/myDatabase?characterEncoding=UTF-8"