【问题标题】:dot "." insensitive search using hibernate?点“。”使用休眠的不敏感搜索?
【发布时间】:2015-05-16 22:41:07
【问题描述】:

我知道以下对字符串进行不区分大小写的搜索的方法

criterion.add(Restrictions.eq("email", email).ignoreCase());

有没有办法做到“。”不敏感搜索,即它将忽略出现在被比较的两个字符串中的任何一个中的任何点。

我不想获取电子邮件并循环进行比较。

【问题讨论】:

    标签: java mysql email jdbc


    【解决方案1】:

    我认为您的意思是在 Hibernate 中使用正则表达式,但不幸的是,hibernate 文档中没有任何内容可用于执行正则表达式查询(使用 HQL 或 Criteria 查询)。使用 sqlRestrictions 的方法可能应该更改为重载方法之一,如下所示

    Restrictions.sqlRestriction("regexp_like({alias}.NODE_1, ?)", re, Hibernate.STRING)
    

    看看它是否适合你。希望会有所帮助。如果您需要任何帮助,请告诉我

    【讨论】:

      【解决方案2】:

      我认为最好的方法是将规范化的电子邮件(不带点)与原始电子邮件一起存储,然后对给定的电子邮件进行规范化,然后通过它进行搜索

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-30
        • 2016-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多