【发布时间】:2017-11-28 00:28:52
【问题描述】:
我目前使用的是spring-data-jpa版本1.9.4。
我有一个 MySql 表,其中包含 project(integer)、summary(varchar) 和 description(varchar) 列。
我有一个正则表达式,我想用它来搜索摘要和/或描述字段,这意味着如果它在摘要中找到它,则不需要将正则表达式应用于描述。
我尝试使用的存储库方法是:
List<Issue> findByProjectAndSummaryOrDescriptionRegex(long project, String regex)
我收到的错误是:
java.lang.IllegalArgumentException:不支持的关键字 REGEX (1): [MatchesRegex,匹配,正则表达式]
在我的公司环境中更新/升级版本很困难,所以如果问题不是我的语法,而是如果有人知道哪个版本现在支持“正则表达式”进行查询派生,或者我可以在哪里找到我的特定信息将感激不尽。我查看了Changelog,似乎1.9.4 应该支持,但似乎不支持。
感谢您的帮助!
京东
编辑 1:我知道 @Query 注释,但我的负责人要求我仅在找不到支持关键字 REGEX [MatchesRegex, Matches, Regex] 的正确版本时才使用它作为最后的手段
【问题讨论】:
-
鉴于
Regex已经在 1.3.0 (docs.spring.io/spring-data/jpa/docs/1.3.0.RELEASE/reference/…) 的文档中列出,因此 spring-data-jpa 的版本可能不是这里的问题 -
我认为问题在于您的条件不明确(您是右分组还是左分组?),目前尚不清楚您是否希望正则表达式仅适用于
description或summary.这已经够复杂了,我觉得最好明确地写出 JPQL。 -
@Chrylis 感谢您的回复!暂时我打算走那条路并研究这个问题。令我困扰的是,文档表明一件事,而不是另一件事。
标签: java mysql spring spring-data-jpa jpql