Retroceder   Foros del Web > Programación para sitios web > Java y JSP
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 26-dic-2008, 12:10   #1 (permalink)
Wayern no tiene puntos (o el karma desactivado)
 
Avatar de Wayern
 
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 42
Wayern está desconectado
Exclusión de parámetros con Hibernate Criteria

Buenas tardes.
Estoy haciendo un proyecto con hibernate y spring. En un módulo requiero buscar una lista de datos usando diferentes parámetros, para dicha consulta estoy utilizando Criteria en lugar de HQL.
La consulta en si, funciona bien siempre y cuando ingrese todos los datos en el formulario, pero necesito que la clausula where ignore aquellos parámetros que vegan nulos.
Este es el código que estoy utilizando para la consulta:
Código:
@SuppressWarnings("unchecked")
	public List<TBillingRoute> searchGME(TBillingRoute billingRoute) {
		Criteria c=getSession().createCriteria(TBillingRoute.class);
		c.add(Restrictions.eq("billingRouteId", billingRoute.getBillingRouteId()));
		c.add(Restrictions.eq("name", billingRoute.getName()));
		c.add(Restrictions.eq("ssoId", billingRoute.getSsoId()));
		c.add(Restrictions.eq("buc", billingRoute.getBuc()));
		c.add(Restrictions.eq("hostCode", billingRoute.getHostCode()));
		c.add(Restrictions.eq("homeCode", billingRoute.getHomeCode()));
		c.add(Restrictions.eq("businessUnit", billingRoute.getBusinessUnit()));
		return c.list();
	}
Como les comento, ingresando todos los parámetros en el formulario la consulta funciona bien, pero solo retorna un valor, puesto que la combinación solo puede existir una vez.
Lo que busco es lo siguiente, por ejemplo, si buc es el campo que no se ingresó en el formulario, que la clausula where en lugar de decir:
Código:
where ssoId='123456' and buc=null and hostCode='DE'
Diga solamente:
Código:
where ssoId='123456' and hostCode='DE'
Según leí en algunos foros, Hibernate debería ignorar los parámetros que vienen nulos, pero no lo está haciendo, no sé si me falta agregar algo.

Espero que me haya explicado correctamente y me puedan ayudar, un saludo y gracias anticipadas.
  Responder Citando
Antiguo 26-dic-2008, 13:07   #2 (permalink)
GreenEyed se está ganando tu confianza
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.129
GreenEyed está desconectado
Respuesta: Exclusión de parámetros con Hibernate Criteria

¿Quiza lo que has leido es utilizando "Query By Example" que tiene un metodo para hacer que se excluyan las propiedades que estan a cero?
http://hibernate.org/hib_docs/v3/ref...-examples.html

En el API Criteria en si no se ve algo similar.
__________________
TAANSTAFL - Para obtener respuestas inteligentes, lo mejor es empezar por preguntar de forma inteligente.
  Responder Citando
Antiguo 26-dic-2008, 13:43   #3 (permalink)
Wayern no tiene puntos (o el karma desactivado)
 
Avatar de Wayern
 
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 42
Wayern está desconectado
Respuesta: Exclusión de parámetros con Hibernate Criteria

¿Qué tal GreenEyed? Muchas gracias por responder a esta pregunta... Efectivamente había leido el caso de Example utilizando el método
Código:
example.excludeZeroes();
Sin embargo, tampoco me funcionó con está instrucción... De todas formas seguiré investigando por este lado haber si puedo hacer que esta cosa funcione =).
Igual si tú tienes otra idea, pues déjamela saber...
Muchas gracias... Saludos.
  Responder Citando
Antiguo 27-dic-2008, 05:57   #4 (permalink)
GreenEyed se está ganando tu confianza
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.129
GreenEyed está desconectado
Respuesta: Exclusión de parámetros con Hibernate Criteria

No lo he usado nunca, la unica otra solución que he visto es comprobar si el parametro es igual a null, y si lo es no añadir la clausula al Criteria, con un if de toda la vida.
__________________
TAANSTAFL - Para obtener respuestas inteligentes, lo mejor es empezar por preguntar de forma inteligente.
  Responder Citando
Antiguo 31-dic-2008, 12:04   #5 (permalink)
Wayern no tiene puntos (o el karma desactivado)
 
Avatar de Wayern
 
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 42
Wayern está desconectado
Respuesta: Exclusión de parámetros con Hibernate Criteria

Si, a final de cuentas fue lo que terminé haciendo... Igual si logro descubiri como funciona te aviso para que también los sepas...
Gracias!
  Responder Citando
Respuesta
No hay votos aún.
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 17:19.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100