Regex 如何在JPQL中应用正则表达式?
我使用JPA(Hibernate)作为持久层 我需要添加一个基于正则表达式的WHERE子句, 这样的一些模式是SELECT*fromtablename,其中REGEXP_类似于(ColumnName,'pattern')。我从结果中得到的是字符串列表,但我需要从数据库中获取映射实体,作为对象而不是字符串 据我所知,JPQL可以将结果作为对象返回,但JPQL似乎不支持正则表达式,因为它是Oracle的适当扩展Regex 如何在JPQL中应用正则表达式?,regex,hibernate,jpql,Regex,Hibernate,Jpql,我使用JPA(Hibernate)作为持久层 我需要添加一个基于正则表达式的WHERE子句, 这样的一些模式是SELECT*fromtablename,其中REGEXP_类似于(ColumnName,'pattern')。我从结果中得到的是字符串列表,但我需要从数据库中获取映射实体,作为对象而不是字符串 据我所知,JPQL可以将结果作为对象返回,但JPQL似乎不支持正则表达式,因为它是Oracle的适当扩展 如何将正则表达式应用于JPQL?我还需要知道什么?JPQL中没有完整的正则表达式,但有模
如何将正则表达式应用于JPQL?我还需要知道什么?JPQL中没有完整的正则表达式,但有模式值。根据规范: 模式_值是字符串文字或字符串值输入参数,其中下划线(u)表示任何单个字符,百分比(%)表示任何字符序列(包括空序列),所有其他字符表示它们自己 [……] 示例:
- 类似于“12%3”的address.phone对于“123”“12993”为true,对于“1234”为false
- 像“l_se”这样的词对“lose”是真的,对“loose”是假的
- 带下划线的“\u%”ESCAPE“\”表示“\ufoo”,false表示“bar”
- address.phone与'12%3'不同,对于'123'和'12993'为假,对于'1234'为真
如果您想要更高级的正则表达式构造,您需要使用本机查询。这可能是您问题的答案:您可能需要使用本机查询。