Author: bleny Date: 2011-07-21 10:30:39 +0000 (Thu, 21 Jul 2011) New Revision: 1380 Log: prevent generation of bad syntax in query when sorting boats Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-07-21 10:15:51 UTC (rev 1379) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-07-21 10:30:39 UTC (rev 1380) @@ -416,7 +416,17 @@ query.addEquals(sampleRowProperty.observationTypeOrdinal(), filter.getExpectedObservationType().ordinal()); } - if (filter.getOrderBy() != null) { + // a fix to prevent adding of orderBy when filtering on Boats. This prevent + // a bad query to be generated if user is on page Boats, select a + // sample row in filter, run the search and finally click on the header + // of a column, to sort on boat name for example. + // Without this condition, generated query would end by + // "Order by name, B.name", the first term should not have been added + // the second is added in applyBoatFilter. The following boolean assure + // that first term is not added when filtering on boats and the query + // ends only with "Order By B.name" + boolean applyOrder = ! (filter instanceof BoatFilter); + if (applyOrder && filter.getOrderBy() != null) { query.addOrder(filter.getOrderBy()); }