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:

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);
        }
    }
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?

merci