Que haces Guido,
te paso un ejemplo de un entity bean usando xdoclet:

a nivel de clase (despues de los imports) pone estos tags:

 *  @ejb.select
 *    signature="java.util.Collection ejbSelectGeneric( java.lang.String jbossql, 
java.lang.Object[] args )"
 *    result-type-mapping="Local"
 *    method-intf="LocalHome"
 *    query=""
 *  @jboss.query
 *    signature="java.util.Collection ejbSelectGeneric( java.lang.String jbossql, 
java.lang.Object[] args )"
 *    dynamic="true"
 *  

despues agregÃs estos metodos al entity mismo:

/**
 * @jboss.dynamic-ql
 */
public abstract java.util.Collection ejbSelectGeneric ( String jbossQl, 
Object[]arguments ) throws FinderException;

/**
 * @ejb.home-method 
 *      tview-type="local" 
 */
public java.util.Collection ejbHomeBusquedasGenericas(
                String node_name,               String type,            String 
alias_name,              String description,             String login,           
String passwd,          String transfer_dir,            String host_alias,             
 String operational_status,              String ip_address,              String cv_id, 
          String node_type                ) throws javax.ejb.FinderException{ 

                java.util.Collection params = new java.util.ArrayList();
                int paramNumber = 1;
                boolean yaHayUno = false;
        
                // generate JBossQL query
                StringBuffer jbossQl = new StringBuffer();
                jbossQl.append("SELECT OBJECT(u) ");
                jbossQl.append("FROM Dyt_com_nodeSchema AS u ");
        
                if (
                        (node_name!=null  
                        && !node_name.equalsIgnoreCase("todos")
                        && !node_name.equalsIgnoreCase("")
                ) 
||                      (type!=null  
                        && !type.equalsIgnoreCase("todos")
                        && !type.equalsIgnoreCase("")
                ) 
||                      (alias_name!=null  
                        && !alias_name.equalsIgnoreCase("todos")
                        && !alias_name.equalsIgnoreCase("")
                ) 
||                      (description!=null  
                        && !description.equalsIgnoreCase("todos")
                        && !description.equalsIgnoreCase("")
                ) 
||                      (login!=null  
                        && !login.equalsIgnoreCase("todos")
                        && !login.equalsIgnoreCase("")
                ) 
||                      (passwd!=null  
                        && !passwd.equalsIgnoreCase("todos")
                        && !passwd.equalsIgnoreCase("")
                ) 
||                      (transfer_dir!=null  
                        && !transfer_dir.equalsIgnoreCase("todos")
                        && !transfer_dir.equalsIgnoreCase("")
                ) 
||                      (host_alias!=null  
                        && !host_alias.equalsIgnoreCase("todos")
                        && !host_alias.equalsIgnoreCase("")
                ) 
||                      (operational_status!=null  
                        && !operational_status.equalsIgnoreCase("todos")
                        && !operational_status.equalsIgnoreCase("")
                ) 
||                      (ip_address!=null  
                        && !ip_address.equalsIgnoreCase("todos")
                        && !ip_address.equalsIgnoreCase("")
                ) 
||                      (cv_id!=null  
                        && !cv_id.equalsIgnoreCase("todos")
                        && !cv_id.equalsIgnoreCase("")
                ) 
||                      (node_type!=null  
                        && !node_type.equalsIgnoreCase("todos")
                        && !node_type.equalsIgnoreCase("")
                ) 
)
                {
                        jbossQl.append("WHERE");
                }
        
                if (node_name != null 
                        && !node_name.equalsIgnoreCase("todos")
                        && !node_name.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.node_name=?" + paramNumber++);
                        params.add(node_name);
                        yaHayUno=true;
                }
                if (type != null 
                        && !type.equalsIgnoreCase("todos")
                        && !type.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.type=?" + paramNumber++);
                        params.add(type);
                        yaHayUno=true;
                }
                if (alias_name != null 
                        && !alias_name.equalsIgnoreCase("todos")
                        && !alias_name.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.alias_name=?" + paramNumber++);
                        params.add(alias_name);
                        yaHayUno=true;
                }
                if (description != null 
                        && !description.equalsIgnoreCase("todos")
                        && !description.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.description=?" + paramNumber++);
                        params.add(description);
                        yaHayUno=true;
                }
                if (login != null 
                        && !login.equalsIgnoreCase("todos")
                        && !login.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.login=?" + paramNumber++);
                        params.add(login);
                        yaHayUno=true;
                }
                if (passwd != null 
                        && !passwd.equalsIgnoreCase("todos")
                        && !passwd.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.passwd=?" + paramNumber++);
                        params.add(passwd);
                        yaHayUno=true;
                }
                if (transfer_dir != null 
                        && !transfer_dir.equalsIgnoreCase("todos")
                        && !transfer_dir.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.transfer_dir=?" + paramNumber++);
                        params.add(transfer_dir);
                        yaHayUno=true;
                }
                if (host_alias != null 
                        && !host_alias.equalsIgnoreCase("todos")
                        && !host_alias.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.host_alias=?" + paramNumber++);
                        params.add(host_alias);
                        yaHayUno=true;
                }
                if (operational_status != null 
                        && !operational_status.equalsIgnoreCase("todos")
                        && !operational_status.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.operational_status=?" + paramNumber++);
                        params.add(operational_status);
                        yaHayUno=true;
                }
                if (ip_address != null 
                        && !ip_address.equalsIgnoreCase("todos")
                        && !ip_address.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.ip_address=?" + paramNumber++);
                        params.add(ip_address);
                        yaHayUno=true;
                }
                if (cv_id != null 
                        && !cv_id.equalsIgnoreCase("todos")
                        && !cv_id.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.cv_id=?" + paramNumber++);
                        params.add(cv_id);
                        yaHayUno=true;
                }
                if (node_type != null 
                        && !node_type.equalsIgnoreCase("todos")
                        && !node_type.equalsIgnoreCase("")
                ){
                        if (yaHayUno) jbossQl.append(" AND");
                        jbossQl.append(" u.node_type=?" + paramNumber++);
                        params.add(node_type);
                        yaHayUno=true;
                }
        
                Object[] args = params.toArray(new Object[params.size()]);

                //ejecuto ejbql
                Collection col=ejbSelectGeneric ( jbossQl.toString(), args );

                //si la consulta anterior no me devolvio ningun registro, pruebo con 
los LIKE
                if(col.size()==0)
                {
                        paramNumber = 1;
                        yaHayUno = false;
                        // generate JBossQL query
                        jbossQl = new StringBuffer();
                        jbossQl.append("SELECT OBJECT(u) ");
                        jbossQl.append("FROM Dyt_com_nodeSchema AS u ");
                        if (
                                (node_name!=null  
                                && !node_name.equalsIgnoreCase("todos")
                                && !node_name.equalsIgnoreCase("")
                        ) 
                        ||                              (type!=null  
                                && !type.equalsIgnoreCase("todos")
                                && !type.equalsIgnoreCase("")
                        ) 
                        ||                              (alias_name!=null  
                                && !alias_name.equalsIgnoreCase("todos")
                                && !alias_name.equalsIgnoreCase("")
                        ) 
                        ||                              (description!=null  
                                && !description.equalsIgnoreCase("todos")
                                && !description.equalsIgnoreCase("")
                        ) 
                        ||                              (login!=null  
                                && !login.equalsIgnoreCase("todos")
                                && !login.equalsIgnoreCase("")
                        ) 
                        ||                              (passwd!=null  
                                && !passwd.equalsIgnoreCase("todos")
                                && !passwd.equalsIgnoreCase("")
                        ) 
                        ||                              (transfer_dir!=null  
                                && !transfer_dir.equalsIgnoreCase("todos")
                                && !transfer_dir.equalsIgnoreCase("")
                        ) 
                        ||                              (host_alias!=null  
                                && !host_alias.equalsIgnoreCase("todos")
                                && !host_alias.equalsIgnoreCase("")
                        ) 
                        ||                              (operational_status!=null  
                                && !operational_status.equalsIgnoreCase("todos")
                                && !operational_status.equalsIgnoreCase("")
                        ) 
                        ||                              (ip_address!=null  
                                && !ip_address.equalsIgnoreCase("todos")
                                && !ip_address.equalsIgnoreCase("")
                        ) 
                        ||                              (cv_id!=null  
                                && !cv_id.equalsIgnoreCase("todos")
                                && !cv_id.equalsIgnoreCase("")
                        ) 
                        ||                              (node_type!=null  
                                && !node_type.equalsIgnoreCase("todos")
                                && !node_type.equalsIgnoreCase("")
                        ) 
)
                        {
                                jbossQl.append("WHERE");
                        }

                        if (node_name != null 
                                && !node_name.equalsIgnoreCase("todos")
                                && !node_name.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.node_name LIKE '%" + 
node_name.toString() + "%'");
                                yaHayUno=true;
                }
                        if (type != null 
                                && !type.equalsIgnoreCase("todos")
                                && !type.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.type LIKE '%" + type.toString() + 
"%'");
                                yaHayUno=true;
                }
                        if (alias_name != null 
                                && !alias_name.equalsIgnoreCase("todos")
                                && !alias_name.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.alias_name LIKE '%" + 
alias_name.toString() + "%'");
                                yaHayUno=true;
                }
                        if (description != null 
                                && !description.equalsIgnoreCase("todos")
                                && !description.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.description LIKE '%" + 
description.toString() + "%'");
                                yaHayUno=true;
                }
                        if (login != null 
                                && !login.equalsIgnoreCase("todos")
                                && !login.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.login LIKE '%" + login.toString() + 
"%'");
                                yaHayUno=true;
                }
                        if (passwd != null 
                                && !passwd.equalsIgnoreCase("todos")
                                && !passwd.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.passwd LIKE '%" + passwd.toString() 
+ "%'");
                                yaHayUno=true;
                }
                        if (transfer_dir != null 
                                && !transfer_dir.equalsIgnoreCase("todos")
                                && !transfer_dir.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.transfer_dir LIKE '%" + 
transfer_dir.toString() + "%'");
                                yaHayUno=true;
                }
                        if (host_alias != null 
                                && !host_alias.equalsIgnoreCase("todos")
                                && !host_alias.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.host_alias LIKE '%" + 
host_alias.toString() + "%'");
                                yaHayUno=true;
                }
                        if (operational_status != null 
                                && !operational_status.equalsIgnoreCase("todos")
                                && !operational_status.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.operational_status LIKE '%" + 
operational_status.toString() + "%'");
                                yaHayUno=true;
                }
                        if (ip_address != null 
                                && !ip_address.equalsIgnoreCase("todos")
                                && !ip_address.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.ip_address LIKE '%" + 
ip_address.toString() + "%'");
                                yaHayUno=true;
                }
                        if (cv_id != null 
                                && !cv_id.equalsIgnoreCase("todos")
                                && !cv_id.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.cv_id LIKE '%" + cv_id.toString() + 
"%'");
                                yaHayUno=true;
                }
                        if (node_type != null 
                                && !node_type.equalsIgnoreCase("todos")
                                && !node_type.equalsIgnoreCase("")
                        ){
                                if (yaHayUno) jbossQl.append(" AND");
                                jbossQl.append(" u.node_type LIKE '%" + 
node_type.toString() + "%'");
                                yaHayUno=true;
                }
                        args = params.toArray(new Object[params.size()]);
                        col=ejbSelectGeneric ( jbossQl.toString(), args );
                }
                return col;
        }


lo que te estoy pasando es un ejemplo mÃo, reemplazalo con lo que vos necesitas.

Me interesa saber en donde estan laburando con jboss aca en buenos aires, pensà que 
era el unico...

Saludos,
Hernan Terzian.

PD: che, espero aparecer en los creditos de tu codigo ;)

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3835670#3835670

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3835670


-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id66&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to