Author: bleny Date: 2010-10-22 09:31:53 +0000 (Fri, 22 Oct 2010) New Revision: 703 Log: hack to bugfix unability to filter when a subquery is involved ; a bug in addSubQuery ? Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-10-21 16:06:37 UTC (rev 702) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2010-10-22 09:31:53 UTC (rev 703) @@ -252,8 +252,28 @@ // Apply filter for fishingZone on subQuery applySimpleFishingZoneFilter(filter, subquery); + if(logger.isDebugEnabled()) { + logger.debug("sampling filter subquery " + subquery); + logger.debug("sampling filter query " + query); + } + query.addSubQuery(WaoQueryHelper.format( "$1 IN (?)", sampleRowProperty.$alias()), subquery); + + // XXX 20101022 bleny it seems that last call don't + // keep params of the sub-query. Thus, the :facadeName is still + // in the query but misses in params of the request. + // the next line is a work-around that copy the params of the + // subquery is the main query. It works but it seems that + // there is a bug in addSubQuery, :facadeName should have been + // replaced in the query and removed from params OR not replaced + // in the query and kept in the params but NOT not replaced in + // the query and removed from params + query.getParams().addAll(subquery.getParams()); + + if(logger.isDebugEnabled()) { + logger.debug("sampling filter query " + query); + } } } @@ -289,6 +309,11 @@ calendar.add(Calendar.MONTH, nbMonthsFinishedFromToday); query.addWhere(sampleRowProperty.periodEnd(), TopiaQuery.Op.GE, calendar.getTime()); } + + if(logger.isDebugEnabled()) { + logger.debug("sampling filter query " + query); + } + return query; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-10-21 16:06:37 UTC (rev 702) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-10-22 09:31:53 UTC (rev 703) @@ -163,7 +163,7 @@ logger.debug("Init contactFilter"); } contactFilter = new ContactFilterImpl(); - // Initialized to 12 months before the current day + // Initialized to 3 months before the current day Date fromDate = DateUtil.createDateAfterToday(0, -3, 0); contactFilter.setFromDate(fromDate); }