我有一个具有模式列的实体。根据哪个模式匹配给定字符串,找到现有记录的最佳方法是什么?
例如:
| ID | pattern |
| 1 | /actions/{action-id:\d+}/{type-id:\d+}/{edge:[a-z][\w]+}/draft |,
| 2 | /actions/{action-id:\d+}/{edge:[a-z][\w]+}/submit |,
| 3 | /actions/{action-id:\d+}/{type-id:\d+}/{edge:[a-z][\w]+}/request |,
| 4 | /actions/{action-id:\d+}/{edge:[a-z][\w]+}/request |,
| 5 | /actions/{action-id:\d+}/{edge:[a-z][\w]+}/terminate |
/actions/1/send/request
这将返回带有Action
的{{1}}记录,因为模式ID = 4
与输入字符串匹配。
实现这一目标的最佳方法是什么?
注意:保证输入字符串只匹配一个 表中的模式
感谢。
答案 0 :(得分:0)
您可以像这样添加SQL限制
Criteria criteria ...
criteria.add(Restrictions.sqlRestriction(theInputString+" REGEXP pattern")