Foros del Web » Programando para Internet » ASPX (.net) »

Hibernate: problema con TimeSpan como string

Estas en el tema de Hibernate: problema con TimeSpan como string en el foro de ASPX (.net) en Foros del Web. Hola a todos, tengo un problemilla al realizar una búsqueda con criterias. La situación es la siguiente: tengo una tabla en BD con una columna ...
  #1 (permalink)  
Antiguo 19/10/2010, 04:22
 
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 51
Antigüedad: 16 años, 4 meses
Puntos: 1
Pregunta Hibernate: problema con TimeSpan como string

Hola a todos,

tengo un problemilla al realizar una búsqueda con criterias. La situación es la siguiente: tengo una tabla en BD con una columna llamada hora_inicio declarada como un string. De este modo, la columna toma valores como 11:04:45, 13:54:45, 1.00:01:35. Este último caso se corresponde a cuando la hora de inicio es pasada las 12 de la noche, es decir, cuando la hora coincide con una hora del día siguiente.

Al declararme la clase la propiedad prInicio es un string y esto no lo puedo modificar por temas ajenos a mi.

Cuando realizo una búsqueda con hibernate como la siguiente:

Código:
ICriteria critAux = this.prNHibernateSession.CreateCriteria(typeof(CCompra));
critAux.Add(Expression.Eq("prDtFecha", dtActual));
critAux.Add(Expression.Eq("prCaja", oCompra.prCaja));
critAux.Add(Expression.Ge("prInicio", "09:30:00"));
critAux.Add(Expression.Lt("prInicio", "14:00:00"));
me está devolviendo todas las compras realizadas entre las 9.30 y las 14, pero además me devuelve todas las que están por encima de las 00.00 es decir las que en BD tiene un valor similar al 1.00:01:35, comentado anteriormente.
En cambio, cuando realizo la siguiente consulta :

Código:
ICriteria critAux = this.prNHibernateSession.CreateCriteria(typeof(CCompra));
critAux.Add(Expression.Eq("prDtFecha", dtActual));
critAux.Add(Expression.Eq("prCaja", oCompra.prCaja));
critAux.Add(Expression.Ge("prInicio", "22:00:00"));
Quisiera obtener todas las compras realizadas más tarde de las 22, incluidas las de después de las 00.00 horas (1.00:01:35, ...etc), pero en este caso no me las devuelve.

¿Alguien sabe como puedo corregir esto?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 20/10/2010, 01:52
 
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 51
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Hibernate: problema con TimeSpan como string

Por si a alguien le interesa, la única solución que he encontrado es declararme una propiedad en el hbm que conste de una fórmula que me obtiene el segundo caracteres del campo hora de inicio.
De esta forma, en hibernate para obtener las compras entre las 9.30 y las 14 le añado una restricción de que el segundo carácter no sea un punto. Para el caso de las compras a partir de las 22 le añado que o bien sean mayores que la hora de inicio '22:00:00' o que el segundo carácter sea un punto.

Un saludo

Etiquetas: hibernate, string, timespan, aspx
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 19:50.