Bonjour à tous,
J'ai un petit bug que je ne comprend pas.
Mon appli possède trois couche : Web, Service et DAO.
Quand je mets le @Transactional dans mon service, ça ne marche pas :et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Service class MonService @autowired private ChienDao chienDao; @Transactional public void createMonChien(String name) { Chien chien = new Chien(name); chienDao.save(chien); }Par contre, quand je mets le @Transactional dans le DAO (et que je l'enlève du service), ça marche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Repository class ChienDao { @PersistenceContext private EntityManager entityManager; public void save(Chien chien) { entityManager.persist(chien); }et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Service class MonService @autowired private ChienDao chienDao; //@Transactional public void createMonChien(String name) { Chien chien = new Chien(name); chienDao.save(chien); }Donc je ne comprend pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Repository class ChienDao { @PersistenceContext private EntityManager entityManager; @Transactional // la ca marche public void save(Chien chien) { entityManager.persist(chien); }
J'aurais tendance à penser que ma config est bonne puisque ça marche quand je mets l'annotation dans le DAO...
Partager