Problème de rafraîchissement
Bonjour,
j'ai un soucis lorsque je supprime un enregistrement, mon PAG (Pilote d'acte de gestion) appelle un CM (composant métier) qui lui même appelle un DAO dans lequel j'ai cette méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void deleteTest(ExecutionContext executionContext,
GestionnaireGedWfTransferObject gestionnaireTO) throws PersistenceException {
Session session = getSession();
session.clear();
try {
// Test Mapper le TO en EO. A partir de là, récupérer la clé de l'EO et le détruire
GestionnaireGedWf gestionnaireGedWf = getBeanMapper().map(gestionnaireTO, GestionnaireGedWf.class);
// GestionnaireGedWfId gestionnaireGedWfId = gestionnaireGedWf.getId();
session.delete(gestionnaireGedWf);
session.flush();
}
catch (BeanMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} |
Je suis obligé d'appeler la méthode flush() afin que les données soient bien supprimées de la base.
Lorsque je reboucle sur ma page j'appelle cette méthode afin de rafraîchir la page :
Code:
private static final String HQL_LIRE = "from GestionnaireGedWf g ";
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| @SuppressWarnings("unchecked")
public List<GestionnaireGedWfTransferObject> rechercher(ExecutionContext executionContext)
throws PersistenceException {
Session session = getSession();
Query query = session.createQuery(HQL_LIRE);
List<GestionnaireGedWf> listeEO = (List<GestionnaireGedWf>) query.list();
List<GestionnaireGedWfTransferObject> retour = new ArrayList<GestionnaireGedWfTransferObject>();
for (GestionnaireGedWf entityObject : listeEO) {
try {
GestionnaireGedWfTransferObject transferObject = getBeanMapper().map(entityObject, GestionnaireGedWfTransferObject.class);
retour.add(transferObject);
}
catch (BeanMappingException e) {
// LOGGER.debug(executionContext, "LAUNCH : BeanMappingException()",getClass().getName() );
final PersistenceException persistenceException = new PersistenceException(executionContext, e.getMessage());
persistenceException.setStackTrace(e.getStackTrace());
throw persistenceException;
}
}
return retour;
} |
Même en rechargeant les données dans le support de persistance les données ne sont pas rafraîchies. je suis obligé de rafraîchir à nouveau la page afin qu'elles soient bien rafraîchies.
Quelqu'un peut-il m'éclairer car je ne suis pas sûr d'utiliser Hibernate à bon escient. Y'aurait-il un best practice d'hibernate sur le net ?