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

Reply via email to