私のデータベースでは、ユーザーの入力として電話番号を保存します(ユーザーに電話番号のフォーマットを決定させたい)
ユーザーが電話番号を検索するとき、おそらく 2 つの文字列を比較できるように番号をフォーマットすることはありません。数字の途中に括弧やその他の通常の電話区切りがある可能性があるため、「いいね」でもうまくいきません。
フィルターを適用して結果を比較した後、DB 上の各電話を検索条件と比較できるようにしたいと考えています。これまでのところ、適用したいフィルターは次のとおりです。
private String numberFilter(String num){
num = num.replace("+", "00");
num = num.replace("(", "");
num = num.replace("(", "");
num = num.replace("-", "");
num = num.replace(" ", "");
if (num.contains("ext"))
num = num.substring(0, num.indexOf("ext"));
return num;
}
そして、電話を比較するために私がしていること(まだフィルターがありません)
public List<Entity> getEntityByTelephone(String telephone) {
DetachedCriteria criteria = DetachedCriteria.forClass(Entity.class);
criteria.createAlias("telephones", "tl", CriteriaSpecification.INNER_JOIN);
criteria.add(Restrictions.like("tl.number", telephone));
return (List<Entity>) getHibernateTemplate().findByCriteria(criteria);
}
したがって、上記のフィルターを休止状態のコンパレータとして使用する方法についてのヘルプをいただければ幸いです