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) :
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));
		}
	}
Dans le service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
	public void deleteMySpecificObject(MySpecificObject obj) {
		myDAO.deleteObject(obj);
	}
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
4
@Transactional(rollbackFor = Throwable.class, propagation = Propagation.REQUIRED)
public class MyService implements IMysService {
...
}
J'arrive pas à trouver de solution pour comprendre ce qui provoque ça.
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.