Bonjour,
J'ai migré une appli de vieilles librairies à des librairies un peu plus à jour.
J'ai un souci quand je veux supprimer une ligne dans une table (toute simple sans clé étrangère ou autre).
Je finis dans GenericJpaDAO.jabva par appeler (comme avant) :
Dans le service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void deleteObject(Object object) { try { em.remove(object); } catch (Exception e) { em.remove(em.merge(object)); } }
Au cas où ça serve, comme avant le service est déclaré comme tel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void deleteMySpecificObject(MySpecificObject obj) { myDAO.deleteObject(obj); }
J'arrive pas à trouver de solution pour comprendre ce qui provoque ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 @Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRED) public class MyService implements IMysService { ... }
L'insertion d'une nouvelle ligne fonctionne bien et sa modification également, mais la suppression ne marche plus...
EDIT : si je remplace par em.remove(object); par em.remove(em.merge(object)); --> ça marche de nouveau.
Autrement dit mon Exception n'était pas catchée et donc maintenant la fonction remove ne marche plus tant qu'un merge n'est pas fait avant.
-->si quelqu'un peu m'expliquer car je ne suis pas très confiant d'avoir du flou dans ma couche bas niveau...
Merci.
Partager