Ho un oggetto dominio Hibernate che viene caricato da diverse parti dell'applicazione. A volte è vantaggioso caricare pigro ogni associazione e altri è meglio caricare l'intera cosa in un join. Come compromesso speranzosamente felice che ho trovato:Hibernate: batch_size? Cache di secondo livello?
Utilizzando il recupero in batch, Hibernate può caricare diversi proxy non inizializzati se si accede a un proxy. Il recupero in serie è un'ottimizzazione della strategia di recupero lazy select.
hibernate.default_batch_fetch_size
:
Utilizzando recupero batch, Sospensione possibile caricare diversi proxy inizializzate se si delega si accede. Il recupero in serie è un'ottimizzazione della strategia di recupero lazy select .
Vedo anche:
hibernate.jdbc.fetch_size
:
Un valore diverso da zero determina la JDBC dimensioni di raccolta (chiamate Statement.setFetchSize()).
Bene Hibernate è abbastanza intelligente da cercare nella cache di secondo livello quando si esegue il recupero in batch? Esegui un recupero per la chiamata iniziale all'associazione e quindi le successive chiamate X colpiscono la cache? In questo modo posso avere il carico pigro che desidero, ma colpisco anche la cache spesso per le transazioni più di massa.
Se l'intero contenuto della raccolta è già contenuto nella cache, eseguirà comunque le query di recupero all'accesso della raccolta?
Grazie.
Ora questo è qualcosa che mi piacerebbe conoscere anche la risposta. – Zoidberg
Segna la mia domanda :-) – davidemm