Stavo passando in letargo e situazioni in cui utilizzare Criteria vs HQL
e la mia comprensione è che con Hibernate, ogni volta che stiamo interrogando il database sia da Criteria
o HQL
in entrambe le istanze di sospensione otterrebbe risultato impostato e messo in memoria e poi quando chiamiamo quello query di nuovo, i dati verrebbero recuperati dalla memoria piuttosto che colpire quel database, la mia comprensione è corretta?La query HQL colpisce sempre il database e ottiene risultati?
Inoltre, come si può vedere dai commenti alla domanda menzionata di seguito, è stato suggerito che Hibernate Criteria otterrebbe i dati dalla sessione e HQL andrebbe sempre a colpire il database e quindi qualsiasi numero di chiamate multiple alla query HQL andrà a colpire il database e se questo è il caso, allora HQL
causa più problemi che soluzioni.
Si prega gentilmente di comunicarlo perché sono un po 'confuso con la situazione.
riferimento al question
per quanto ne so una query HQL utilizza solo la cache delle query e solo ottenere i risultati da lì se la query e tutti i parametri sono gli stessi. – Thomas
quindi se sto facendo '" da "+ test.class.getName() + SORT_BY_ID;', come posso decidere se sta colpendo memoria o database, anche come possiamo gestire le impostazioni della cache in hibernate v3.2? – Rachel
@Juha: così ora quando dici che la sessione è sempre attiva, allora HQL dovrebbe ottenere di nuovo i risultati dalla sessione e non colpire nuovamente il database, giusto? – Rachel