Dans mon db je stocke les numéros de téléphone des choses comme entrée par l'utilisateur (je veux permettre à l'utilisateur de décider comment il formater leur numéro de téléphone)Rechercher une propriété en veille prolongée après aplying une fonction
lorsque les utilisateurs recherchent un numéro de téléphone, ils ne formateront probablement pas le nombre d'une manière que je peux juste comparer les deux chaînes. Même "comme" ne fera pas l'affaire car peut-être le numéro a des parenthèses ou un autre séparateur de téléphone habituel au milieu. Je veux être capable de comparer chaque téléphone de la base de données avec mes critères de recherche après avoir appliqué un filtre et comparé les résultats. Jusqu'à présent, le filtre que je veux appliquer est celui-ci:
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;
}
Et ce que je fais pour comparer les téléphones (il manque toujours le filtre)
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);
}
Ainsi l'aide sur un moyen d'utiliser la filtre ci-dessus comme un comparateur dans hibernate serait apprécié
Peut-être que je pourrais créer mon propre critère d'hibernation? – JorgeO