#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»