【问题标题】:How do I write a Hibernate Criteria to match case-insensitively and trim whitespace?如何编写 Hibernate Criteria 以不区分大小写匹配并修剪空格?
【发布时间】:2011-12-03 02:04:14
【问题描述】:

我目前对MyClass 的条件有一个限制,以匹配MyClass.propertyName 的值:

Restrictions.ilike("propertyName", matchString)

这是否可以将 MyClass.propertyName 的值与前导或尾随空格匹配?


这是我要匹配的正则表达式:

\s*foo(\s*|\s+.*)

【问题讨论】:

    标签: hibernate trim case-insensitive removing-whitespace


    【解决方案1】:

    有两种方法:

    1. matchString 点赞:"%foo%"
    2. 使用限制特定:
      Restrictions.ilike("propertyName", matchString, MatchMode.ANYWHERE)

    【讨论】:

    • “fook”、“bafoon”和“kungfoo”不应匹配。这仍然有效吗?
    【解决方案2】:

    如果matchString"%foo%",并且propertyName 值为" foo ",则限制将接受此属性。这就是使用 like 运算符的全部意义所在。

    【讨论】:

    • “fook”、“bafoon”和“kungfoo”不应匹配。这仍然有效吗?
    • 不,不是。您可能必须使用正则表达式,但这肯定会迫使您改进 Hibernate Dialect 或使用特定的标准限制。
    猜你喜欢
    • 2017-09-29
    • 2012-06-17
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2017-11-14
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多