From: Vance K. <va...@us...> - 2006-05-29 01:44:28
|
User: vancek Date: 06/05/28 18:44:27 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3FinderMethodFacadeLogicImpl.java Log: getQuery must ignore args in where clause if stereotyped to be firstResult or maxResults Revision Changes Path 1.10 +19 -10 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java Index: EJB3FinderMethodFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3FinderMethodFacadeLogicImpl.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- EJB3FinderMethodFacadeLogicImpl.java 15 May 2006 12:30:17 -0000 1.9 +++ EJB3FinderMethodFacadeLogicImpl.java 29 May 2006 01:44:27 -0000 1.10 @@ -102,6 +102,8 @@ // translation String queryString = this.getTranslatedQuery(); + boolean whereClauseExists = false; + // otherwise see if there is a query stored as a tagged value if (StringUtils.isEmpty(queryString)) { @@ -130,14 +132,20 @@ queryString = "from " + owner.getName() + " as " + variableName; if (this.getArguments().size() > 0) { - queryString = queryString + " where"; Collection arguments = this.getArguments(); if (arguments != null && !arguments.isEmpty()) { Iterator argumentIt = arguments.iterator(); for (int ctr = 0; argumentIt.hasNext(); ctr++) { - ParameterFacade argument = (ParameterFacade)argumentIt.next(); + EJB3FinderMethodArgumentFacade argument = (EJB3FinderMethodArgumentFacade)argumentIt.next(); + if (!argument.isFirstResult() && !argument.isMaxResults()) + { + if (!whereClauseExists) + { + queryString = queryString + " where"; + whereClauseExists = true; + } String parameter = "?"; if (this.isUseNamedParameters()) { @@ -152,6 +160,7 @@ } } } + } return queryString; } |