【发布时间】:2012-02-17 14:29:13
【问题描述】:
我已经看到像 MySQL 这样的 DBMS 支持包含正则表达式的查询。 Eclipselink 支持吗?
我必须检索具有与某些正则表达式匹配的某些字符串属性的实体
SELECT X FROM Person X WHERE X.name <some keyword> (A-Z)*
【问题讨论】:
标签: jpa eclipselink jpql
我已经看到像 MySQL 这样的 DBMS 支持包含正则表达式的查询。 Eclipselink 支持吗?
我必须检索具有与某些正则表达式匹配的某些字符串属性的实体
SELECT X FROM Person X WHERE X.name <some keyword> (A-Z)*
【问题讨论】:
标签: jpa eclipselink jpql
MySQL 使用 REGEX 或 RLIKE 进行正则表达式查询。 JPQL 不支持这些运算符,因此您可以使用原生 SQL 查询。
在 EclipseLink 中,您可以为这些定义自己的 ExpressionOperator,并在 Expression 查询中使用它,但目前还不能用于 JPQL。 JPQL 确实支持使用 FUNC 调用数据库函数,但这些函数的语法与函数不同。您可以扩展 MySQLPlatform 以制作 #like us REGEX 或 RLIKE。
请在 EclipseLink 上为此记录一个错误。现在大多数数据库都支持正则表达式,所以这种支持应该在 JPQL 中可用。
【讨论】: