Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con consulta EJBQL. Por favor, 1 repuesta al menos...

Estas en el tema de Problema con consulta EJBQL. Por favor, 1 repuesta al menos... en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/11/2007, 11:52
 
Fecha de Ingreso: septiembre-2007
Mensajes: 56
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con consulta EJBQL. Por favor, 1 repuesta al menos...

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.
  #2 (permalink)  
Antiguo 18/11/2007, 04:23
 
Fecha de Ingreso: septiembre-2007
Mensajes: 173
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Problema con consulta EJBQL. Por favor, 1 repuesta al menos...

No te comprendo bien. Si los 8 select son indiferentes, o sea, todos, la búsqueda la realizas en toda la base de datos, y no hay problema; no salen 64 if, sino 8.

Creo que estoy metiendo la pata, mira a ver si te puedes explicar mejor, por favor.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:05.