Author: tchemit Date: 2012-10-17 17:45:14 +0200 (Wed, 17 Oct 2012) New Revision: 733 Url: http://forge.codelutin.com/repositories/revision/echobase/733 Log: fixes #1604: Impossible de rechercher via un op?\195?\169rateur de comparaison de chaine de caract?\195?\168res sur un nombre Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-10-17 15:16:36 UTC (rev 732) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-10-17 15:45:14 UTC (rev 733) @@ -129,12 +129,13 @@ if (pager != null && pager.canFilter()) { String filterHql = getFilterHql(tableMeta, pager, paramsList); - if (log.isInfoEnabled()) { - log.info("filterHql = " + filterHql); - } hql += " WHERE " + filterHql; } + if (log.isInfoEnabled()) { + log.info("filterHql = " + hql); + } + Object[] params = paramsList.toArray(); long count = dao.countByQuery("SELECT COUNT(*) " + hql, params); @@ -341,7 +342,7 @@ Object realData = data; if (columnMeta.isFK()) { - if (op==FilterRuleOperator.nu || op==FilterRuleOperator.nn){ + if (op == FilterRuleOperator.nu || op == FilterRuleOperator.nn) { // is null or is not null is a simple case @@ -378,12 +379,29 @@ } else { if (columnMeta.isNumber()) { - if (columnMeta.getType() == int.class || - columnMeta.getType() == Integer.class) { - realData = Integer.valueOf(data); + + if (op == FilterRuleOperator.cn || + op == FilterRuleOperator.nc || + op == FilterRuleOperator.bw || + op == FilterRuleOperator.bn || + op == FilterRuleOperator.ew || + op == FilterRuleOperator.en) { + + // string operation + +// realData = "'" + realData + "'"; + propertyName = "str(" + propertyName + ")"; } else { - realData = Double.valueOf(data); + // real number operation + + if (columnMeta.getType() == int.class || + columnMeta.getType() == Integer.class) { + realData = Integer.valueOf(data); + } else { + + realData = Double.valueOf(data); + } } } else if (columnMeta.isDate()) { propertyName = "str(" + propertyName + ")";