Sono nuovo di letargo e ha iniziato a studiare il capitolo hibernate.The sto andando attraverso usi hibernate con JDBC(). La mia prima domanda è Does ibernazione uso JDBC internamente o JTA internamente per eseguire operazioni persist e get? Ma posso vedere qualche accenno a JTA anche qui, come il metodo getCurrentSeessionSession() ottiene la sessione associata alla transazione JTA corrente Domanda: - Fondamentalmente voglio capire il ruolo di JTA e jdbc qui in letargoFa Hibernate usa JDBC internamente o JTA internamente o è configurabile?"
Question2: - Posso vedere sotto lo snippet di codice in qualsiasi operazione in ibernazione
try{
session=factory.openSession();
tx=session.beginTransaction();
session.save(myClass);
tx.commit();
}
finally{
session.close();
}
Qui, voglio capire il ruolo di line // tx = session.beginTransaction(); Per quanto riguarda la comprensione, ogni sessione utilizzerà una connessione. Quindi anche se iniziamo più transazioni dalla stessa sessione, useremo la stessa connessione. una volta che effettuiamo il commit della transazione specifica, tutte le transazioni create dalla stessa sessione verranno confermate una volta. Quindi, cosa stiamo cercando di ottenere con // tx = session.beginTransaction(); ?
Grazie Ryan Per una risposta così elanorata. Solo altri due punti. Come hai detto, "JDBC è l'API standard utilizzata dalle applicazioni Java per interagire con un database", posso dire che ogni applicazione java utilizzerà jdbc per connettersi al database in modo esplicito o interno (nel caso di strumenti orm come ibernazione) o EJB. Hai detto "JTA è l'API standard per la gestione delle transazioni su una o più risorse". Ho questo scenario in un'applicazione Java ho due schemi diversi come database. Qui userò ancora jdbc sia per il database/schema. Anch'io userò JTA qui per gestire continua ..... –
continua ... le transazioni su entrambi gli schemi.Right? –
@Mohit: Sarebbe un'app per Java estremamente rara che si connette a un database diverso da JDBC. Non ne ho mai sentito uno, ma * potrebbe * accadere. Per quanto riguarda JTA, è solo l'API delle transazioni JEE. Esistono altri modi per gestire le transazioni, come la gestione delle transazioni di Spring (che può tuttavia anche integrarsi con JTA). Se desideri transazioni distribuite, non ne so molto, ma penso che probabilmente vorrai implementare un'implementazione JTA. –