This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 3d921412e28327e8c60d497b939c8c1fff2b4723 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed May 4 11:34:02 2016 +0200 On doit rajouter un order by à la main + correction de la fenetre à calculer --- .../echobase/services/service/DbEditorService.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java index 7274449..6eff2e3 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/DbEditorService.java @@ -25,12 +25,12 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.echobase.EchoBaseTechnicalException; -import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.entities.AbstractEchoBaseDao; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUserPersistenceContext; import fr.ifremer.echobase.services.EchoBaseServiceSupport; +import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -135,6 +135,9 @@ public class DbEditorService extends EchoBaseServiceSupport { public <E extends TopiaEntity> List<E> getEntities(TableMeta<EchoBaseUserEntityEnum> tableMeta, TopiaPagerBean pager) { + Preconditions.checkNotNull(tableMeta); + Preconditions.checkNotNull(pager); + EchoBaseUserEntityEnum entityEnum = tableMeta.getSource(); try { AbstractEchoBaseDao<E> dao = (AbstractEchoBaseDao<E>) persistenceContext.getDao(entityEnum.getContract()); @@ -143,7 +146,7 @@ public class DbEditorService extends EchoBaseServiceSupport { String hql = dao.newFromClause("e"); - if (pager != null && pager.canFilter()) { + if (pager.canFilter()) { String filterHql = pagerToHql(tableMeta, pager, paramsList); hql += " WHERE " + filterHql; } @@ -158,14 +161,14 @@ public class DbEditorService extends EchoBaseServiceSupport { Map<String, Object> hqlParameters = TopiaUtil.convertPropertiesArrayToMap(params); Long count = dao.findAny("SELECT COUNT(*) " + hql, hqlParameters); - if (pager != null) { + pager.setRecords(count); + PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); - pager.setRecords(count); - PagerBeanUtil.computeRecordIndexesAndPagesNumber(pager); + if (!hql.toLowerCase().contains("order by")) { + hql+=" Order By e.id"; } - //FIXME echatellier 20160309 use proper paginationparameter everywhere - PaginationParameter param = PaginationParameter.of(pager.getPageIndex(), pager.getPageSize()); + PaginationParameter param = PaginationParameter.of(pager.getPageIndex() - 1, pager.getPageSize()); return dao.find(hql, hqlParameters, param.getStartIndex(), param.getEndIndex()); } catch (TopiaException eee) { throw new EchoBaseTechnicalException("Could not obtain data", eee); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.