Je voudrais ajouter l'horodateur du serveur db dans last_update colonne de ma table. Comment puis-je y parvenir en hibernation?En hibernation, comment utiliser l'horodatage du serveur db?
Merci
Je voudrais ajouter l'horodateur du serveur db dans last_update colonne de ma table. Comment puis-je y parvenir en hibernation?En hibernation, comment utiliser l'horodatage du serveur db?
Merci
Ce n'est pas une jolie solution mais cela fonctionne. Utilisez la propriété de formule.
<property name='ServerDate' formula='getdate()'/>
Lieu ce domaine dans une sorte d'entité factice et vous serez en mesure de tirer la date de votre base de données SQL et à partir de là, vous pouvez l'assigner à votre colonne last_update
.
J'ai fait pas mal de recherches et je n'ai pas trouvé un moyen plus simple de le faire.
Vous pouvez créer une nouvelle SaveOrUpdateEventListener:
public class DateTimeSaveOrUpdateEventListener : DefaultSaveOrUpdateEventListener
{
protected override object EntityIsPersistent(SaveOrUpdateEvent @event)
{
MyEntity ent = @event.Entity as MyEntity;
if(ent != null)
ent.LastUpdate = DateTime.Now;
return base.EntityIsPersistent(@event);
}
protected override object EntityIsTransient(SaveOrUpdateEvent @event)
{
MyEntity ent = @event.Entity as MyEntity;
if(ent != null)
ent.LastUpdate = DateTime.Now;
return base.EntityIsTransient(@event);
}
}
et l'enregistrer dans votre configuration comme ceci:
var listener = new DateTimeSaveOrUpdateEventListener();
config.SetListener(NHibernate.Event.ListenerType.SaveUpdate, listener);
config.SetListener(NHibernate.Event.ListenerType.Save, listener);
je HQL et cela a fonctionné
entity.setLastUpdate((Date) session.createSQLQuery(
"select getdate()").list().get(0))
Merci pour votre réponse , cela signifie-t-il que je ne peux pas avoir ServerDate comme l'une des propriétés de l'objet à enregistrer et que je dois utiliser ité? – Vishal
Vous pouvez mais vous devrez toujours l'assigner. J'ai seulement recommandé l'entité fictive car il pourrait être trompeur d'avoir ce champ en tant que propriété d'une entité réelle. –
Ok, je suis nouveau à Hibernate Dois-je créer un fichier de configuration pour cette entité fictive? Comment puis-je obtenir ServerDate et l'assigner plus tard au champ last_update? – Vishal