Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/10/2010, 04:22
tesitina
 
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 51
Antigüedad: 16 años, 5 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