我知道以下方法对字符串进行不区分大小写的搜索
criterion.add(Restrictions.eq("email", email).ignoreCase());
有办法吗?“不敏感的搜索,即它将忽略在被比较的两个字符串中的任何一个中出现的任何点。
我不想获取电子邮件并在循环中进行比较。
答案 0 :(得分:2)
我认为你的意思是在Hibernate中使用正则表达式,但不幸的是,在hibernate文档中没有用于执行正则表达式查询(使用HQL或Criteria查询)。使用sqlRestrictions的方法可能应该更改为其中一个重载方法,如下所示
Restrictions.sqlRestriction("regexp_like({alias}.NODE_1, ?)", re, Hibernate.STRING)
查看它是否适合您。希望它会有所帮助。如果您需要任何帮助,请告诉我
答案 1 :(得分:1)
我认为最好的方法是将标准化的电子邮件(无点)与原始电子邮件一起存储,然后对给定的电子邮件进行标准化,然后按其进行搜索