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

Exclusión de parámetros con Hibernate Criteria

Estas en el tema de Exclusión de parámetros con Hibernate Criteria en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/12/2008, 13:10
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 4
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.
  #2 (permalink)  
Antiguo 26/12/2008, 14:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
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.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 26/12/2008, 14:43
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 4
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.
  #4 (permalink)  
Antiguo 27/12/2008, 06:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
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.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 31/12/2008, 13:04
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 4
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!
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 02:11.