Подстановочный знак не работает? - JPQL в JPA - PullRequest
0 голосов
/ 17 марта 2012

У меня есть класс MovieElement, URL поля, который является идентификатором, и другое имя поля. Просто для тестирования значения name и url совпадают. Объект сохраняется с именем & url = "www.test.com" Но я не могу получить подстановочный знак, я попытался запрос, как:

query = em.createQuery("SELECT m FROM MovieElement m WHERE m.name LIKE :keyword");
query.setParameter("keyword", "%test%");
query.getResultList();

Это дает пустой результат.

Но работает следующее:

query = em.createQuery("SELECT m FROM MovieElement m WHERE m.name LIKE :keyword");
query.setParameter("keyword", "www.test.com");
query.getResultList();

Даже все последующие из них приводят к нулю:

MovieElement el = em.find(MovieElement.class, "%test%");

query = em.createQuery("SELECT m FROM MovieElement m WHERE m.name LIKE :keyword");
query.setParameter("keyword", "www.test.co_");
query.getResultList();

query = em.createQuery("SELECT m FROM MovieElement m WHERE m.name LIKE :keyword");
query.setParameter("keyword", "%");
query.getResultList();

Из-за последнего запроса кажется, что код не учитывает подстановочный знак. Далее я использую DataNucleus и MongoDb.

Есть идеи? Thx!

1 Ответ

1 голос
/ 18 марта 2012

Нашел решение: похоже, что Datanucleus для mongodb распознает ". *" Как подстановочный знак вместо "%"

...