Bonjour,

Voila mon souci, j'ai une requête JPQL qui s'exécute en 1850 ms.
Pour voir si ma requête était vraiment lourde, j'ai récupèré le code SQL généré par Hibernate et je l'ai éxécuté directement dans pgAdmin.

Résultat, la requête ne prend même pas 1s à être exécuté ! Aucune attente ne se fait sentir.

Comment se fait il que ma requête exécutée par mon entity manager prenne autant de temps ?

voici la requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
select mc from Map m  
JOIN m.cells mc  
where m.id = ?1 
and 
mc.xPos between ?2 and ?3 
and 
mc.yPos between ?4 and ?5 
order by mc.id ASC
voici la requête SQL générée:
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
 
select
        cells2_.id as id15_,
        cells2_.xPos as xPos15_,
        cells2_.yPos as yPos15_,
        cells2_.isApproachable as isApproa4_15_,
        cells2_.picturePath as pictureP5_15_,
        cells2_.description as descript6_15_,
        cells2_.ground_fk as ground7_15_ 
    from
        Map mapobject0_ 
    inner join
        map_cells cells1_ 
            on mapobject0_.id=cells1_.map_fk 
    inner join
        Cells cells2_ 
            on cells1_.cells_id=cells2_.id 
    where
        mapobject0_.id=? 
        and (
            cells2_.xPos between ? and ?
        ) 
        and (
            cells2_.yPos between ? and ?
        ) 
    order by
        cells2_.id ASC
avez vous une idée pour optimiser ma requête ?

merci