This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 009f1750288ebec7d2d2aaa5867d952e1a099fb9 Author: Kevin Morin <morin@codelutin.com> Date: Wed Feb 22 17:33:40 2017 +0100 fixes #9052 pbm group by on sql server --- .../faxtomail/persistence/entities/EmailTopiaDao.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java index ea39fa4..056f38e 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java @@ -986,6 +986,17 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { public QuantitiesByRange computeQuantitiesByRange(List<MailFolder> folders) { + String allRangesQuery = "SELECT DISTINCT range" + + " FROM " + Email.class.getName() + " AS email " + + " INNER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow" + + " INNER JOIN rangeRow." + RangeRow.PROPERTY_RANGE + " AS range" + + " WHERE email." + Email.PROPERTY_MAIL_FOLDER + " IN :folders"; + + Map<String, Object> args = new HashMap<>(); + args.put("folders", folders); + List<Range> allRanges = findAll(allRangesQuery, args); + Map<String, Range> rangesById = Maps.uniqueIndex(allRanges, TopiaEntities.getTopiaIdFunction()); + // this has been modifier from // SELECT range // to @@ -993,7 +1004,7 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { // do to bug https://hibernate.atlassian.net/browse/HHH-1615 that can be reproduced // on sql server - String query = "SELECT range," + + String query = "SELECT range." + Range.PROPERTY_TOPIA_ID + "," + " SUM(rangeRow." + RangeRow.PROPERTY_PRODUCT_QUANTITY + ") AS prodQ," + " SUM(rangeRow." + RangeRow.PROPERTY_SAV_QUANTITY + ") AS savQ," + " SUM(rangeRow." + RangeRow.PROPERTY_QUOTATION_QUANTITY + ") AS quotQ" + @@ -1001,9 +1012,9 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { " INNER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow" + " INNER JOIN rangeRow." + RangeRow.PROPERTY_RANGE + " AS range" + " WHERE email." + Email.PROPERTY_MAIL_FOLDER + " IN :folders" + - " GROUP BY range." + Range.PROPERTY_TOPIA_ID; + " GROUP BY range"; - Map<String, Object> args = new HashMap<>(); + args = new HashMap<>(); args.put("folders", folders); Map<Range, Quantities> quantitiesByRange = new TreeMap<>(new Comparator<Range>() { @@ -1018,7 +1029,7 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { List<Object[]> queryResuts = findAll(query, args); for (Object[] queryResut : queryResuts) { - Range range = (Range) queryResut[0]; + Range range = rangesById.get(String.valueOf(queryResut[0])); Long productQuantity = (Long) queryResut[1]; if (productQuantity != null) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.