Aktywne Wpisy

Dawtona +27
Kupiłam 37L garncuch żeby gotować w nim rosół.
W komentarzu zdjęcie gara xD
#gotujzwykopem #gzw #jedzenie
W komentarzu zdjęcie gara xD
#gotujzwykopem #gzw #jedzenie
źródło: 1000011219
Pobierz
szarytkarz +4
Treść przeznaczona dla osób powyżej 18 roku życia...





Czy Hibernate zawsze robi automatyczny update pobranych Encji - jeśli tak, to kiedy zamyka sesję?
Czy robi różnice czy pobieram je bezpośrednio poprzez np. EntityManager a automatycznie wygenerowane repozytoria?
Ale co w przypadku lazy obiektów? Otwiera się nowa sesja i po zaciągnięciu reszty zależności zamyka?
@MiszkaCFC: Tzn, rozumiem że jeśli pobieram wszystko własnoręcznie i zamknę sesję to dostanę exception przy ładowaniu czegoś lazy. Ale wydaje mi się, że w przypadku używania JPA repository mogę dociągnąć pozostałe zależności już z poziomu serwisu - chociaż teoretycznie sesja została zamknięta po wywołaniu metody repo. Jeśli się mylę to idę się wybatożyć.
A co do pytania ze wpisu - update jest wykonywany pod koniec transakcji, jeśli obiekt jest 'dirty', czyli został zmodyfikowany.
Komentarz usunięty przez autora
Cale zarzadzanie EntityManagerem zazwyczaj zalatwia Spring i najistotniejsze sa 2 mechanizmy:
- @Transactional - jak Spring widzi metode z taka annotacja, to otwiera sobie nowego EntityManagera i kojarzy go z aktualnym watkiem. EntityManager jest zamykany na
Czy jego obecność oznacza, że WSZYSTKIE zmiany na encjach beda flushowane na koniec przetwarzania request'a? Czy to nie działa tak, ze jest mozliwość pobrania lazy elementów, ale jakiekolwiek zmiany bez @ Transactional nie sa flush'owane na koniec przetwarzania?
@Kresse: to jest informacja, której szukałem - dzięki wielkie. Bo generalnie używam Boot'a i robie operacje na Encjach w serwisach (zmieniam wartości, ładuje lazy pola) ale finalnie nie zapisują się one w bazie, jeśli nie wymuszę tego poprzez ręczne ustawienie transakcji/sesji.