2011-11-18 16 views
8

Got attraverso sottostante economico al http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-cache-nonstrictnonstrict lettura/scrittura vs lettura/scrittura in sospensione?

Se l'applicazione ha bisogno solo di tanto in tanto per aggiornare i dati (cioè se è estremamente improbabile che due operazioni avrebbero cercato di aggiornare lo stesso oggetto simultaneamente)

Quello che ho ricevuto da l'affermazione precedente è se lo sviluppatore aggiorna un oggetto nel suo codice, a volte vuole aggiornarlo nella cache di secondo livello e talvolta no. Destra? Se sì, come lo realizzerà nel suo codice. Intendo dove ha bisogno di specificare nel suo codice che questa volta vuole aggiornare nella cache e non l'altra volta.

risposta

10

Hai sbagliato. Cosa significa se questa strategia deve essere utilizzata quando l'entità viene a volte aggiornata (quindi non si applica la lettura sola), ma è estremamente improbabile che due transazioni simultanee aggiornino lo stesso elemento. Ad esempio, se hai migliaia di utenti che accedono ai dati, un unico batch lo aggiorna regolarmente, questa opzione è quella giusta da scegliere: solo una transazione aggiorna gli articoli alla volta.

+0

Grazie JB. Questo è quello che sto chiedendo qual è il frammento di codice che specifica la lettura/scrittura non forzata. Come per la mia comprensione dovrebbe essere specificato nel nostro programma invece del file hbm.xml .. Giusto? –

+1

No. È specificato nel file di mapping xml dell'entità o nell'annotazione che descrive la strategia della cache per l'entità. Perché dovrebbe essere nel codice? –

+1

Grazie JB. Che cosa accadrà quando due transazioni simultanee aggiornano lo stesso elemento e se scegliamo opzioni di lettura/scrittura non rigorose. Analogamente, cosa accadrà quando due transazioni simultanee aggiornano lo stesso elemento e se scegliamo l'opzione di lettura/scrittura –