Custom - dbPostSave
Page
1
- dernière modification par Thomas Bazin le 2014/10/06 15:27
db
P
os
tS
av
e
Tho
mas
Bazi
n
2014
/10/0
6
15:2
7
Table des matières
Java .................................................................................................................................................................................................................................................................................. 2
Custom - dbPostSave
Page
2
- dernière modification par Thomas Bazin le 2014/10/06 15:27
Cette méthode est appelée après l’enregistrement d’une entité en base de données (insertion ou modification).
Java
L’exemple suivante explique comment réaliser des traces techniques. Voir dbOnSave pour le complément.
private static final String BEAN_TO_LOG = ”beanToLog”;
@Override
public void dbPostSave(E bean, Action action, RequestContext ctx) {
if (isHistoryEnabled(bean)) {
LibHistory history = new LibHistory();
history.setEntity(bean.name());
history.setAction(action.getCode());
// L’utilisateur courant est stocké dans le contexte de session.
history.setUser(ctx.getSessionContext().getUser().getLogin());
// L’ancienne valeur est stockée uniquement en modification.
if (action.getPersistence() == Persistence.UPDATE) {
history.setOldValue(ctx.getAttributes().get(BEAN_TO_LOG).toString());
ctx.getAttributes().remove(BEAN_TO_LOG);
}
history.setNewValue(bean.toString());
DB.insert(history, ctx);
}
super.dbPostSave(bean, action, ctx);
}
private boolean isHistoryEnabled(E bean) {
// Pour éviter une StackOverflowError compte tenu que LibHistory est une entité comme les autres, donc
dbPostSave est également appelée quand LibHistory est enregistré en base.
boolean isBeanOk = !bean.getClass().isAssignableFrom(LibHistory.class);
// La méthode MessageUtils.getServerProperty retourne une propriété stockée dans le fichier server.properties.
return isBeanOk && Boolean.valueOf(MessageUtils.getServerProperty(”history.enabled”));
}
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!