Java - Problema con consulta EJBQL. Por favor, 1 repuesta

   
Vista:

Problema con consulta EJBQL. Por favor, 1 repuesta

Publicado por Alex (6 intervenciones) el 17/11/2007 18:11:25
Hola,

Intentaré explicar mi problema lo mejor posible, para ver si así obtengo alguna respuesta...

Estoy realizando una aplicación web para una inmobiliaria. Tengo una página jsp desde la que muestro al cliente las opciones de búsqueda (son 6 select).

Si los valores de los select fueran "simples", no habría problema. El tinglao empieza cuando se le da al usuario la opcion de "indiferente". Es decir, tengo 6 select con sus valores, y además cada uno de ellos tiene un "indiferente". Pues bien, este indiferente es el que me joroba bastante... Si no tuviera indiferente, la accion (uso Struts) recoge los párametros de la busqueda, llama al DAO, y este hace el select correspondiente, con los valores recogidos. Pero con este valor indiferente ya no puede ser así...

Entonces me surgía la duda de: ¿Hay alguna posibilidad en EJBQL (es el lenguaje q uso en la entidad DAO) de asignar a un parámetro del select algo que le haga indicar que esa variable del select no influya en la búsqueda? Algo como el "*" es lo que busco... Esta respuesta no la he encontrado en ningun foro... si la sabeis, me encantaría escucharla, xq solucionaría mi problema.

Ante la negativa al valor "*" y tb la falta de respuestas en el foro al respecto, la única "solución" q se me ocurría era diferenciar búsquedas... es decir, si tengo todos los parametros a indiferente, realizar el "selec * from NombreTable", si tengo solo 1 a indiferente, realizar su select concreto, es decir;
String queryString = "select model from PisoChalet model where " +
" model.inmueble." + propertyName2 + "= :propertyValue2";

resultList = getEntityManager().createQuery(queryString) .setParameter("propertyValue2", tipoAccion).getResultList();

(ahí ya serían 6 búsquedas distintas, q son los parámetros q tengo) si tengo 2... y así hasta llegar a no tener ningún parámetro a indiferente, con lo que haría el select mas grande.

El problema ante esta "solucion" es obvio, con 2 parámetros q puedan tomar el valor "indiferente", tendriamos 4 búsquedas distintas (numero razonable), con 3, tendríamos 8 búquedas diferentes (el numero empieza a engordar.... ya es engorroso tener q hacer 8 if's con sus correspondientes 8 busquedas...) pero es q si el numero de variables que pueden tomar "indiferente" como valor sube hasta 6... el numero ya es 64 y... 64 if's con sus 64 búsquedas distintas me parece algo realmente cansino...

Como soy de los que piensa q las cosas se pueden hacer siempre de mjor forma... espero vuestras respuestas con esa mejor forma... por favor

Muchisimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder