r1601 - in trunk/wao-business/src/main/java/fr/ifremer/wao: . entity
Author: bleny Date: 2012-04-17 12:03:54 +0200 (Tue, 17 Apr 2012) New Revision: 1601 Url: http://forge.codelutin.com/repositories/revision/wao/1601 Log: fixes #1109 Probl?\195?\168me sur le tri par nom des navires ; il manquant les alias quand dans les clauses orderBy des requ?\195?\170tes g?\195?\169n?\195?\169r?\195?\169es par les filtres Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatDAOImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowDAOImpl.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2012-04-12 14:35:38 UTC (rev 1600) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2012-04-17 10:03:54 UTC (rev 1601) @@ -284,14 +284,26 @@ return code; } - public static TopiaQuery addOrderAndLimitClauses(TopiaQuery topiaQuery, WaoFilter waoFilter) { + /** + * Permet de modifier une requête pour ajouter les paramètres de pagination + * et d'ordre. + * + * @param topiaQuery la requête à modifier + * @param mainAlias alias de l'entité dans la clause SELECT de la requête + * @param waoFilter le WaoFilter (qui contient les informations de pagination et + * d'ordre) + * @return la requête modifiée + */ + public static TopiaQuery addOrderAndLimitClauses(TopiaQuery topiaQuery, String mainAlias, WaoFilter waoFilter) { if (waoFilter.getStartIndex() != null && waoFilter.getEndIndex() != null) { topiaQuery.setLimit(waoFilter.getStartIndex(), waoFilter.getEndIndex()); } if (waoFilter.getOrderBy() != null) { - topiaQuery.addOrder(waoFilter.getOrderBy()); + String prefix = mainAlias == null ? "" : mainAlias + "."; + String orderByClause = prefix + waoFilter.getOrderBy(); + topiaQuery.addOrder(orderByClause); } return topiaQuery; Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatDAOImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatDAOImpl.java 2012-04-12 14:35:38 UTC (rev 1600) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatDAOImpl.java 2012-04-17 10:03:54 UTC (rev 1601) @@ -167,11 +167,12 @@ protected TopiaQuery getQueryForFilter(BoatFilter filter) throws TopiaException { TopiaQuery query = toTopiaQuery(filter); - WaoUtils.addOrderAndLimitClauses(query, filter); + WaoUtils.addOrderAndLimitClauses(query, "B", filter); if (log.isDebugEnabled()) { log.debug("query to find all boats by filter is " + query); } + return query; } @@ -198,9 +199,9 @@ TopiaQuery query = toTopiaQuery(filter); - WaoUtils.addOrderAndLimitClauses(query, filter); + WaoUtils.addOrderAndLimitClauses(query, "B", filter); - WaoQueryHelper.BoatProperty boatProperty = WaoQueryHelper.newBoatProperty(); + WaoQueryHelper.BoatProperty boatProperty = WaoQueryHelper.newBoatProperty("B"); query.addFetch( boatProperty.portOfRegistry(), boatProperty.boatGroup(), Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java 2012-04-12 14:35:38 UTC (rev 1600) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/ContactDAOImpl.java 2012-04-17 10:03:54 UTC (rev 1601) @@ -300,11 +300,10 @@ TopiaQuery query = toTopiaQuery(filter); if (filter.isSortedByBoardingDate()) { - filter.setOrderBy(null); - query.addOrder(Contact.PROPERTY_OBSERVATION_BEGIN_DATE + " DESC"); + filter.setOrderBy(Contact.PROPERTY_OBSERVATION_BEGIN_DATE + " DESC"); } - WaoUtils.addOrderAndLimitClauses(query, filter); + WaoUtils.addOrderAndLimitClauses(query, "C", filter); if (log.isDebugEnabled()) { log.debug("query to find all contacts by filter is " + query); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowDAOImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowDAOImpl.java 2012-04-12 14:35:38 UTC (rev 1600) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowDAOImpl.java 2012-04-17 10:03:54 UTC (rev 1601) @@ -204,7 +204,7 @@ protected TopiaQuery getQueryForFind(SamplingFilter filter) { TopiaQuery query = toTopiaQuery(filter); - WaoUtils.addOrderAndLimitClauses(query, filter); + WaoUtils.addOrderAndLimitClauses(query, "SR", filter); if (log.isDebugEnabled()) { log.debug("query to find all sample rows by filter is " + query);
participants (1)
-
bleny@users.forge.codelutin.com