Поддерживает ли Eclipselink запросы, содержащие регулярные выражения? - PullRequest
2 голосов
/ 24 января 2012

Я видел, что СУБД, как и MySQL, поддерживает запросы, содержащие регулярные выражения.Поддерживает ли это Eclipselink?

Мне нужно получить объекты, имеющие какой-либо атрибут String, соответствующий какому-либо регулярному выражению, как

SELECT X FROM Person X WHERE X.name <some keyword> (A-Z)*

1 Ответ

5 голосов
/ 24 января 2012

MySQL использует REGEX или RLIKE для запросов регулярных выражений. JPQL не поддерживает эти операторы, поэтому вы можете использовать собственный SQL-запрос.

В EclipseLink вы можете определить свой собственный ExpressionOperator для них и использовать его в запросе Expression, но не в настоящее время с JPQL. JPQL поддерживает вызов функций базы данных с использованием FUNC, но их синтаксис отличается от синтаксиса функций. Вы могли бы расширить MySQLPlatform, чтобы сделать # like us REGEX или RLIKE.

Пожалуйста, зарегистрируйте ошибку для этого на EclipseLink. Большинство баз данных теперь поддерживают регулярные выражения, поэтому эта поддержка должна быть доступна на JPQL.

...