Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Transaction JAVA

    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?

  2. #2
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    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?

  3. #3

    JBCC

    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.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: JBCC

    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.
    Per avere una transazione ti basta disabilitare l'autocommit:

    codice:
    connection.setAutoCommit(false);
    
    insert 1
    insert 2
    
    connection.commit();
    connection.setAutoCommit(true);
    Intendevi una cosa del genere?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5

    Transaction

    ah, quindi devo farlo all'interno di entityManager?

  6. #6

    Gestione transaction

    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:

    Codice PHP:

    connection
    .setAutoCommit(false);

    insert 1
    insert 2

    connection
    .commit();
    connection.setAutoCommit(true); 
    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.

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Gestione transaction

    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

  8. #8

    ...

    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.