2013-11-22 2 views
1

Я хотел бы написать запрос JPQL так:Как разграничить именованный параметр в JPQL?

SELECT f 
    FROM Foo f 
WHERE f.bar LIKE '[:bar]%' 

Это не может быть проанализирован должным образом EclipseLink, которые не могут понять, что задний ]% на самом деле не является частью названного именем параметра.

Я знаю ключевое слово ESCAPE, но я не уверен, что это исправит мою проблему. Каковы мои санкционированные мной опционы?

ответ

1

Я бы сказал: создать объект запроса с помощью запроса:

SELECT f FROM Foo f WHERE f.bar LIKE :bar 

А затем установите параметр «бар» по телефону

query.setParameter("bar", "["+bar+"]%"); 
+0

Таким образом, ваш ответ будет, по сути, вы можете 't ограничивать именованный параметр в JPQL? Просто убедившись, что я понимаю. –

+0

Все примеры с использованием JPQL и подстановочных знаков, которые я видел до сих пор, внесли подстановочный знак как часть значения параметра в соответствии с примером, который я дал. Конечно, вы можете использовать подстановочные знаки в JPQL, но только как постоянное выражение и не привязанные к параметрам. – PepperBob

Смежные вопросы