Bonsoir

Il y a t il une difference de Perf entre
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
52
53
54
55
56
57
58
59
60
61
62
 
    /** Entity Manager Factory */
    @PersistenceUnit(name = "myPersistenceUnit")
    private EntityManagerFactory emf;
  EntityManager em = emf.createEntityManager();
 
//V1 recherche qui ne se fait pas sur la clef primaire, et sous objet pas en LAZY
           infodebut(op, 7);
           StringBuffer select7 = new StringBuffer();
           select7.append("FROM Crit12 as F ");
           select7.append("WHERE F.status = :status");
           select7.append(" AND F.c11a.name = :namea");
           select7.append(" AND F.c11b.name = :nameb");
 
           try {
           Session ses7= ((Session)em.getDelegate());
           org.hibernate.Query query7 = ses7.createQuery(select7.toString());
           query7.setMaxResults(1);
           query7.setParameter("status", "U");
           query7.setParameter("namea","MONNOMTESTC11A_00100");
           query7.setParameter("nameb", "MONNOMTESTC11B_00100");
 
 
           Crit12 tmp=(Crit12)query7.iterate().next();
           ses7.get(Crit12.class, tmp.getId() );
          // return tmp;
          } catch (HibernateException e) {
          //return null;
          }
 
 
 
 
       //V2 Select d'un ID puis un session.get   
          infodebut(op, 8);
          try {
 
 
          StringBuffer select8 = new StringBuffer();
            select8.append("Select F.id FROM Crit12 as F ");
            select8.append("WHERE F.status = :status");
            select8.append(" AND F.c11a.name = :namea");
            select8.append(" AND F.c11b.name = :nameb");
 
 
 
          Session ses8= ((Session)em.getDelegate());
          org.hibernate.Query query8 = ses8.createQuery(select8.toString());
          query8.setMaxResults(1);
          query8.setParameter("status", "U");
          query8.setParameter("namea","MONNOMTESTC11A_00100");
          query8.setParameter("nameb", "MONNOMTESTC11B_00100");
 
          Long tmpid=(Long)query8.list().get(0);
 
         // return (Crit12)ses8.get(Crit12.class, tmpid);
            Crit12 zz=(Crit12)ses8.get(Crit12.class, tmpid);
 
 
          } catch (HibernateException e) {
        //  return null;
          }

Merci de vos reponses
Philippe