Jestem nowy w hibernacji i rozpocząłem naukę w hibernacji. Rozdział, w którym działam, wykorzystuje hibernację z JDBC() Moje pierwsze pytanie to Czy hibernacja używa jdbc wewnętrznie lub JTA wewnętrznie, aby wykonać trwałe i uzyskać operacje? Ale widzę niektóre wzmianki o JTA również tutaj, podobnie jak getCurrentSeessionSession() metoda uzyskuje sesję związaną z bieżącą transakcją JTA Pytanie: - Zasadniczo chcę zrozumieć rolę JTA i jdbc w hibernacji:Czy hibernacja używa wewnętrznie jtbc lub JTA wewnętrznie, czy można go skonfigurować? "
Pytanie2: - Widzę poniższy fragment kodu w dowolnej operacji hibernacji
try{
session=factory.openSession();
tx=session.beginTransaction();
session.save(myClass);
tx.commit();
}
finally{
session.close();
}
Tutaj chcę zrozumieć rolę linii // tx = session.beginTransaction(); Zgodnie z rozumieniem każda sesja będzie korzystała z jednego połączenia. Nawet jeśli uruchomimy wiele transakcji z tej samej sesji, będziemy używać tego samego połączenia. po zatwierdzeniu konkretnej transakcji wszystkie transakcje utworzone z tej samej sesji zostaną zatwierdzone jednokrotnie. Więc co próbujemy osiągnąć za pomocą // tx = session.beginTransaction(); ?
Dzięki Ryan Za tak piękną odpowiedź. Jeszcze tylko dwa punkty. Jak powiedziałeś: "JDBC to standardowy interfejs API, którego aplikacje Java używają do interakcji z bazą danych" Czy mogę powiedzieć, że każda aplikacja java użyje jdbc do połączenia się z bazą danych jawnie lub wewnętrznie (w przypadku dowolnych narzędzi takich jak hibernacja) lub EJB. Powiedziałeś, że "JTA to standardowy interfejs API do zarządzania transakcjami z jednego lub więcej zasobów." Mam ten scenariusz w aplikacji java Mam dwa różne schematy jako bazy danych. Tutaj nadal będę używać jdbc zarówno dla bazy danych/schematu. Również będę używać JTA tutaj, aby zarządzać ciągłym ..... –
ciąg dalszy ... transakcje na obu schematów.Ręczne? –
@Mohit: Byłaby to wyjątkowo rzadka aplikacja Java, która łączy się z bazą danych inną niż JDBC. Nigdy o nim nie słyszałem, ale * mogło * się wydarzyć. Jeśli chodzi o JTA, to tylko interfejs API transakcji JEE. Istnieją inne sposoby zarządzania transakcjami, takie jak zarządzanie transakcjami w Spring (które może również zintegrować się z JTA). Jeśli chcesz transakcji rozproszonych, nie wiem zbyt wiele o nich, ale myślę, że prawdopodobnie będziesz chciał skorzystać z implementacji JTA. –