User: dsundstrom
Date: 01/08/18 20:32:23
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCEJBQLFinderCommand.java
Log:
Changed ejb-ql command to set select distinct when an Set is to be returned.
Revision Changes Path
1.2 +18 -1
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCEJBQLFinderCommand.java
Index: JDBCEJBQLFinderCommand.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCEJBQLFinderCommand.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JDBCEJBQLFinderCommand.java 2001/08/18 16:16:52 1.1
+++ JDBCEJBQLFinderCommand.java 2001/08/19 03:32:23 1.2
@@ -10,6 +10,7 @@
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import org.jboss.deployment.DeploymentException;
import org.jboss.ejb.plugins.cmp.ejbql.Assembly;
import org.jboss.ejb.plugins.cmp.ejbql.Parser;
@@ -25,7 +26,7 @@
* clause. This code has been cleaned up to improve readability.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Dain Sundstrom</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class JDBCEJBQLFinderCommand extends JDBCFinderCommand
{
@@ -40,14 +41,30 @@
JDBCQlQueryMetaData metadata = (JDBCQlQueryMetaData)q;
log.debug("EQL-QL: "+metadata.getEjbQl());
+
+ // get a parser
Parser ejbql = new EJBQLParser().ejbqlQuery();
+
+ // initialize the assembly
Assembly a = new Assembly(metadata.getEjbQl());
a.setTarget(new SQLTarget(manager.getContainer().getApplication()));
+
+ // match the query
a = ejbql.soleMatch(a);
log.debug("Assembly: "+a);
+
+ // get the final target
SQLTarget target = (SQLTarget)a.getTarget();
+
+ // set the target to use select distinct if the return type is set
+ if(metadata.getMethod().getReturnType().equals(Set.class)) {
+ target.setSelectDistinct(true);
+ }
+
+ // set the sql
setSQL(target.toSQL());
+ // get the parameter order
List l = target.getInputParameters();
parameterArray = new int[l.size()];
for(int i=0; i<l.size(); i++) {
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development