Ciao a tutti,
sto lavorando su un'applicazione che utilizza, per la gestione della persistenza su DB Oracle, Hibernate.
Suddetta applicazione esegue varie query su DB (tramite H8).
Per la definizione delle query utilizzo le API di H8 che mi permettono di specificarle in style OO.
Hibernate a sua volta genera una query SQL.
Per capire il motivo dei rallentamenti e cercare di porvi rimedio, sono andato a vedere quali erano le query generate da H8. La query incriminata
ha la seguente forma qui semplificata per chiarezza:
Date due tabelle A e B,
codice:
SELECT b.ID
FROM A a INNER JOIN B b ON a.type_id = b.ID
WHERE (b.ID = un'ID)
In seguito a vari test ho scoperto che aggiungendo in AND alla clausula WHERE l'espressione:
codice:
a.type_id = un'ID
che quindi diventa:
codice:
WHERE (b.ID = un'ID AND a.type_id = un'ID)
La query viene eseguita molto più velocemente.
La DOMANDA è: C'è un modo in H8 per aggiungere ad una query già esistente la suddetta condizione nella
clausula WHERE?
NOTA: Non è possibile ottimizzare l'esecuzione della query da DB.
Vi ringrazio in anticipo
Saluti