РЕДАКТИРОВАТЬ:
Я изменил запрос с жесткой кодировкой:
query.setParameter("desc", "%unplug //your// server... enjoy the freedom%" ESCAPE '//')
и теперь я получаю com.sun.jdi.InvocationException occurred invoking method.
Там также не было произведено стек.
У меня есть столбец описания в моей базе данных PostgreSQL, и я пытаюсь запросить его с предложением LIKE, однако я не могу получить никаких результатов. Вот пример:
Query query = em.createQuery("from MyClass c WHERE c.description LIKE :desc");
query.setParameter("desc", "%unplug /your/ server... enjoy the freedom%");
В базе данных у меня много описаний, содержащих подстроку вышеприведенного текста. Я провел много исследований и посмотрел на экраны специальных символов и т.д., Но ничего не сработало.
Я что-то упускаю, я просто не могу понять, что это.
Скорее всего, косая черта/испортит разбор в PG. Поверните параметр в цитируемый литерал. Если вы не уверены, что никакие специальные символы не попадают в строковые аргументы (т.е. Вы управляете строками), это всегда хорошая идея, чтобы избежать SQL-инъекции.
query.setParameter("desc", "quote_literal('%unplug /your/ server... enjoy the freedom%')");