Domanda

Al momento stiamo creando un unico EntityManager per richiesta nel nostro web app. Stiamo voler creare una transazione all'inizio della richiesta e chiuderlo alla fine per ottenere il supporto di transazione automatica per tutta l'intera richiesta.

Qualcuno ha provato questo? e sarà questo introdurrà problemi di concorrenza o è dovremmo semplicemente avvolgere tutto il nostro codice di aggiornamento in una transazione separata?

Si noti che stiamo usando JPA 1.0

È stato utile?

Soluzione

Per le applicazioni semplici, questo è sufficiente (una transazione per richiesta). Ma per gli scenari più complessi è necessario utilizzare le transazioni a livello più granulare.

In linea di massima ho sempre avvolgere le mie transazioni di aggiornamento, se necessario.

In ogni modo il tuo approccio non impedisce di aprire una nuova transazione nel mezzo della richiesta, se necessario. Quindi è OK da me.

E qualcosa circa i possibili problemi di concorrenza ... Se si riesce a prevedere i problemi, li indirizzo, altrimenti non mi preoccuperei troppo di questo. Mantenerlo semplice e non farsi prendere in ottimizzazioni premature

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top