je fais deux requetes dans deux fonctions différentes ou je prend bien soin de fermer l'Entitymanager entre temps et pourtant j'obtiens quand meme l'exception "transaction already active" quand je fais mon transaction.begin() dans la deuxieme.
par exemple:
Vous remarquerez que je ferme bien les EntityManager a chaque fois. Alors comment se fait - il que j'ai une exception du type "transaction already active" lorsque j'arrive au em.getTransaction().begin() de la deuxieme fonction?
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 //premiere fonction appelée public static ArrayList<IdeaStatus> getIdeaStatusList()throws Exception { ArrayList al = new ArrayList<IdeaStatus>(); try { EntityManager em = EntityUtil.getEntityManager("SUMSPU"); em.getTransaction().begin(); al = (ArrayList<IdeaStatus>) em.createQuery("from IdeaStatus order by name").getResultList(); em.close(); return al; } catch (Exception e){ throw new Exception(e); } } //deuxieme fonction appelée public static ArrayList<IdeaKind> getIdeaKindList()throws Exception { ArrayList al = new ArrayList<IdeaKind>(); try { EntityManager em = EntityUtil.getEntityManager("SUMSPU"); em.getTransaction().begin(); //Exception al = (ArrayList<IdeaKind>) em.createQuery("from IdeaKind order by name").getResultList(); em.close(); return al; } catch (Exception e){ throw new Exception(e); } }
merci
Partager