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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !