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;
}
|