martes, 22 de noviembre de 2011

Guardar Milisegundos con NHibernate


Hoy casualmente en el trabajo nos topamos con un comportamiento un poco extraño en NHibernate, con una propiedad de tipo DateTime, mapeado a un campo DateTime en una base de datos SQL Server, resulto que necesitábamos tener hasta los milisegundos almacenados y el problema es que nhibernate para "compatibilidad"  con multiples RDBMS, trunca hasta los segundos, por lo que despues de mucho buscar nos encontramos finalmente con la solución.

agregar en el archivo hbm, donde esta definido el mapeo, el atributo

type="timestamp" a la propiedad.

por ejemplo

<property column="CREATION_DATE" name="created" type="timestamp">


aunque en la base de datos se mantiene DateTime. y en la propiedad del objeto tambien se mantiene DateTime.