On 27/02/2014 10:11, Eric Chatellier wrote:
Le 27/02/2014 10:06, Kevin Morin a écrit :
Salut,
j'ai besoin pour FaxToMail de faire des recherches sur des champs d'une entité. L'utilisateur peut don chercher les emails dont l'objet contient "ouaf" ou "chaussette" (exemple au hasard). J'aurais trouvé ça utile d'avoir une méthode addContainsText(String property, String value) sur le dao.
Vous trouvez ça pertinent ? Ca depend quel est le besoin, si il est simple, ca peut coller, mais si ca devient complexe (chauss* pour "chaussette", "chaussure"), c'est plus compliqué et il faut des solutions plus... chiadée. Genre, hibernate-search, solr, lucene...
En gros, pour rentrer dans le détail du code, dans le HqlAndParametersBuilder, au lieu d'avoir String hqlParameterName = putHqlParameterWithAvailableName(property, value); whereClauses.add(alias + "." + property + " = :" + hqlParameterName); comme dans addEquals, on aurait String hqlParameterName = putHqlParameterWithAvailableName(property, "%" + value + "%"); whereClauses.add("lower(" + alias + "." + property + ") like lower(:" + hqlParameterName + ")");