Le Fri, 28 Feb 2014 09:55:42 +0100, Brendan Le Ny <bleny@codelutin.com> a écrit :
Le 27/02/2014 10:28, Kevin Morin a écrit :
String hqlParameterName = putHqlParameterWithAvailableName(property, "%" + value + "%"); whereClauses.add("lower(" + alias + "." + property + ") like lower(:" + hqlParameterName + ")");
Pour l'ajouter sur HqlAndParametersBuilder, je vois pas de problème, on pourrait aussi avoir addTextStartsWith et addTextEndsWith qui peuvent servir.
On peut aussi l'ajouter sur TopiaQueryBuilderAddCriteriaStep (pour exposer ça sur l'API publique des DAO).
Donc, a priori, +1.
Ce qui me paraissait plus discutable, c'est d'ajouter un addTextLike parce que c'est selon moi trop spécifique à SQL.
Après ça pose la question de ce qu'est ToPIA, est-ce une solution de persistence offrant une interface POJO, indépendante de l'infra ou est-ce qu'on pense que ToPIA est une solution de persistence sur SGBD relationnel supportant SQL. En quel cas, on pourrait exposer plus de choses propres à SQL par contre, faudra pas espérer porter topia sur une autre infra de persistence. En gros, faut savoir ce qu'on souhaite que ToPIA soit, c'était la question philosophique du jour.
Je dirai oui et non. Certes, la notion LIKE provient du monde SQL, mais rien n'empeche d'en avoir un équivalent ailleurs. C'est courant je pense de voir des notions transposées ailleurs. Donc je pense qu'il est possible d'envisager une opération addTextLike(), avec un mécanisme similaire ou non à SQL, et qu'il conviendra d'implémenter différement en fonction de l'infra de persistance. Je pense qu'il est possible d'avoir aujourd'hui des requetes avec un mécanisme "like" sur tout systeme de persistance. Et j'ai aussi envie de dire que pour le moment, topia, ce n'est pas autre chose que du SQL, et que c'est rarement bon de partir sur du "oué mais peut etre que dans 2 ans, on aura..." My two dimes. -- Yannick Martel