Bonjour

J'ai une requête HQL qui génère une exception (org.hibernate.exception.LockAcquisitionException).

Cette exception est due à l'erreur Oracle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
java.sql.SQLException: ORA-04031: unable to allocate 64 bytes of shared memory 
("shared pool","unknown object","sql area","optdef : apanlg")
J'ai donc augmenté le "shared pool" d'Oracle de 20Mo à 50Mo. Ca n'a pas résolu le problème.

Ce qui m'étonne c'est que cette requête fonctionne lorsque je l'exécute directement dans Toad. Le problème semble donc venir d'Hibernate.

Pour info, la requête qui pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
select x from X x, A a
where a.id = :id
and a in elements(x.as)
and x.b.id in (:listBs)
and x.c.id in (:listCs)
order by upper(x.libelle)
La première clause "in" contient plus de 100 éléments et c'est ça qui semble poser problème.

Dîtes moi si vous avez des idées. Merci.