Ciao, vorrei gestire la transanzione in modo tale che se prima un metodo non viene completato, l'altro neppure parte. La transaction la vorrei gestire nel codice dove avviene la chiamata del metodo, è fattibile o devo farlo per forza nell'entity?
Ciao, vorrei gestire la transanzione in modo tale che se prima un metodo non viene completato, l'altro neppure parte. La transaction la vorrei gestire nel codice dove avviene la chiamata del metodo, è fattibile o devo farlo per forza nell'entity?
dovresti descrivere meglio il tuo problema, magari con un esempio, parliamo di transazioni su database tramite jdbc o ejb? o di problemi di sincronia fra metodi dell'applicativo?
Ho due insert all'intern di un entityManager, in una srvlet inserisco l'utente e le foto. Voglio che tutto avvenga correttamente soltanto se entrambe le insert siano state eseguite.
Per avere una transazione ti basta disabilitare l'autocommit:Originariamente inviato da SasaSelvaggio
Ho due insert all'intern di un entityManager, in una srvlet inserisco l'utente e le foto. Voglio che tutto avvenga correttamente soltanto se entrambe le insert siano state eseguite.
Intendevi una cosa del genere?codice:connection.setAutoCommit(false); insert 1 insert 2 connection.commit(); connection.setAutoCommit(true);
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
ah, quindi devo farlo all'interno di entityManager?
Ciao, mi sono dimenticato una cosa. insert 1 è un metodo, insert 2 è un altro metodo.
insert 1 apre una connessione, insert 2 apre un'altra connessione. Come faccio a fare:
dovrei utilizzare un unico metodo per insert 1 e insert 2...in quanto connection l'ho definisco all'interno del metodo, ogni metodo ha un suo connection.Codice PHP:
connection.setAutoCommit(false);
insert 1
insert 2
connection.commit();
connection.setAutoCommit(true);
Non so se il fatto di aprire la connessione ogni volta è richiesto dalle specifiche del progetto o meno. Se non è un problema dovresti aprire la connessione una volta all'inizio del programma e poi tenerla aperta finchè il programma non termina. Anche perché quando la connessione si chiude in automatico viene fatto il commit (mi pare) :master:
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
io per ognu query, select o insert ho un metodo, per esempio metodo1 fa un insert, metodo 2 fa una select, come faccio a mettere insieme un insert e un'update insieme?oppure dovrei sempre lasciare all'interno di metodi diversi e prima di ogni metodo quindi subito dopo la classe entity aprire la connessione?
così però la connessione non resta aperta anche se un determinato metodo non viene usata?per esempio aprendo la connessione ad ogni metodo credo che sia più consigliato. Faccio una select, apro connessione, termina select e chiudo connessione e così via...in quel modo o faccio insert o faccio update la connessione è sempre aperta