2010-10-21 10 views
1

J'ai regardé autour et ne peux pas trouver trop. Mais est-il possible de faire quelque chose comme ceci en utilisant HQL dans NHibernate:NHibernate Supprimer avec date arithmatique en utilisant HQL

session.createQuery (@ "DELETE FROM MyObject mo OU (mo.AlteredDate + mo.ExpiryDetails.ExpiryTimestamp) <: pNow") .SetDateTime ("pNow", DateTime.Now); Donc, fondamentalement, je veux supprimer tous les MyObjects de la base de données où la dernière fois que l'objet a été modifié (mo.AlteredDate - un DateTime) plus une durée de 2 jours et 5 heures (ExpiryDetails.ExpiryTimestamp) est moins que maintenant.

Ou est-il préférable de récupérer les objets et de faire la caculation dans le code en utilisant le framework .NET?

Répondre

1

super tard pour répondre, mais je fait quelque chose comme ça & cela fonctionne:

IQuery query = Session.CreateQuery("select x from OBJECT x where x.DateTimeForCompare > :dateTimeForCompare2"); 

query.SetDateTime("dateTimeForCompare2", DateTime.Today); 

IList<OBJECT> xx = query.List<OBJECT>();