специальные символы в HQL

#hql #special-characters

#hql #специальные символы

Вопрос:

привет, я пытаюсь получить из базы данных 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:tempexample.docx
и я получаю ошибку запроса e, используя escape
я уверен, что это мелочь, но я убиваю себя уже два часа!!
пожалуйста, помогите
tnx

Ответ №1:

Это escape также на вашем языке (который, кажется, Java)

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

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

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

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

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

Комментарии:

1. я использую java, это не решило проблему, я все еще получаю «org.hibernate.util. JDBCExceptionReporter — У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с «‘)’ в строке 1»