点“。”使用hibernate进行不敏感搜索?

时间:2015-03-14 13:14:11

标签: java mysql email jdbc

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

我认为最好的方法是将标准化的电子邮件(无点)与原始电子邮件一起存储,然后对给定的电子邮件进行标准化,然后按其进行搜索