salut les amis j'ai problème bizzare j'utilise JPA, Hibernate et Spring MVC
dans la classe controller toutes les méthodes fonctionnes très bien sauf :
public String getModuleFormation(long id) qui doit normalement retourner un objet après je peux l'exploiter comme je veux mais seule cette méthode elle me donne le problème suivant quand j'essai de l'appeler
et ce qui est bizzare est que je l'ai essayé hier et ça a marché sans problème localhost:45045/GestionModules/detail/xx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 root cause : org.hibernate.LazyInitializationException: could not initialize proxy - no Session
svp est ce que quelqu'un pourra me dire la cause de ce problème et la solution possible seulement dans la méthode merci.
detail.jsp :
POJO Class + JPA :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <c:if test="${!empty detailModule}"> ${detailModule.idModule} ${detailModule.libModule} </c:if>
DAO Class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38 @Entity @Table(name="ModuleFormation") public class ModuleFormation { private long idModule; private String libModule; public ModuleFormation() { // TODO Auto-generated constructor stub } public ModuleFormation(String libModule) { this.libModule = libModule; } @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "seqModule") @SequenceGenerator(name="seqModule", sequenceName = "seqModuleFormation") @Column(name="idModule") public long getIdModule() { return this.idModule; } public void setIdModule(long idModule) { this.idModule = idModule; } @Column(name="libModule", nullable=false, length = 100) public String getLibModule() { return this.libModule; } public void setLibModule(String libModule) { this.libModule = libModule; } }
Service Class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34 @Repository public class ModuleFormationDAOImpl implements ModuleFormationDAO { @Autowired private SessionFactory sessionFactory; public void ajouterModuleFormation(ModuleFormation module) { sessionFactory.getCurrentSession().save(module); } public void supprimerModuleFormation(long idModule) { ModuleFormation module = (ModuleFormation) sessionFactory.getCurrentSession().load(ModuleFormation.class, idModule); if(module != null) sessionFactory.getCurrentSession().delete(module); } public List<ModuleFormation> listModuleFormation() { return sessionFactory.getCurrentSession().createQuery("from ModuleFormation") .list(); } public ModuleFormation getModuleFormation(long idModule) { return (ModuleFormation) sessionFactory.getCurrentSession().load(ModuleFormation.class, idModule); } public void majModuleFormation(ModuleFormation module) { sessionFactory.getCurrentSession().merge(module); } }
Controller Class :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32 @Service public class ModuleFormationServiceImpl implements ModuleFormationService { @Autowired private ModuleFormationDAO moduleDao; @Transactional public void ajouterModuleFormation(ModuleFormation module) { moduleDao.ajouterModuleFormation(module); } @Transactional public void supprimerModuleFormation(long idModule) { moduleDao.supprimerModuleFormation(idModule); } @Transactional public List<ModuleFormation> listModuleFormation() { return moduleDao.listModuleFormation(); } @Transactional public ModuleFormation getModuleFormation(long idModule) { return moduleDao.getModuleFormation(idModule); } @Transactional public void majModuleFormation(ModuleFormation module) { moduleDao.majModuleFormation(module); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 @Controller public class ModuleFormationController { @Autowired private ModuleFormationService moduleService; @RequestMapping("/module") public String listModulesFormations(Map<String, Object> map) { map.put("module", new ModuleFormation()); map.put("moduleList", moduleService.listModuleFormation()); return "module"; } @RequestMapping(value = "/ajouter", method = RequestMethod.POST ) public String ajouterModuleFormation(@ModelAttribute("module") ModuleFormation module,BindingResult result) { moduleService.ajouterModuleFormation(module); return "redirect:/module"; } @RequestMapping(value = "/supprimer/{idModule}") public String supprimerModuleFormation(@PathVariable("idModule") long idModule) { moduleService.supprimerModuleFormation(idModule); return "redirect:/module"; } @RequestMapping(value= "/detail/{idModule}") public String getModuleFormation(@PathVariable("idModule") long idModule,Map<String, Object> map) { map.put("detailModule", moduleService.getModuleFormation(idModule)); return "/detail"; } @RequestMapping(value= "/detail/modifier", method = RequestMethod.POST ) public String majModuleFormation(@ModelAttribute("detailModule") ModuleFormation module, BindingResult result) { moduleService.majModuleFormation(module); return "detail/{idModule}"; } }
Partager