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 agregs 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);