В моей базе данных я храню телефонные номера вещей как вводимые пользователем (я хочу, чтобы пользователь сам решал, как он форматирует свой номер телефона)
, когда пользователи ищут номер телефона, они, скорее всего, не будут форматироватьчисло таким образом, что я могу просто сравнить две строки.Даже «как» не сработает, поскольку, возможно, номер имеет круглую скобку или какой-либо другой обычный разделитель телефона в середине.
Я хочу иметь возможность сравнивать каждый телефон в БД с моими критериями поиска после примененияфильтровать и сравнивать результаты.Пока что фильтр, который я хочу применить, это:
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);
}
Так что помогите наспособ использования фильтра выше в качестве компаратора в спящем режиме был бы признателен