специальные символы в HQL - PullRequest
0 голосов
/ 07 июня 2011

привет, я пытаюсь получить из базы данных mySql запрос с использованием Hibernates HQL *

public String getDetailsByUserAndFullPath(String user,String fullpath) {
    String temp2 = "%" + user + "%";
            String temp3 = "%" + fullpath + "%";
            // Query query =
            Query query_bd = session
                    .createQuery("from Files files  where user like ? and full_path like ? escape '\'");
            query_bd.setString(0, temp2);
            query_bd.setText(1, temp3);

            List<Files> list = query_bd.list();

проблема в том, что полный путь содержит \, например c: \ temp \ example.docxошибка запроса с помощью escape, я уверен, что это мелочь, но я убиваю себя уже два часа !!пожалуйста помогите tnx

1 Ответ

1 голос
/ 07 июня 2011

\ - это также выход на вашем языке (кажется, что это Java)

, поэтому запрос выглядит следующим образом.

from Files files  where user like ? and full_path like ? escape ''

Попробуйте добавить еще одну обратную косую черту

 from Files files  where user like ? and full_path like ? escape '\\'

Если вы используете параметр с привязкой, вам не нужно экранировать символы, также я не помню, чтобы это был специальный символ внекоторые СУБД.Также предусмотрен escape-параметр для поддержки более вероятных символов % или _.

...