Jestem nowy w świecie Java i JPA. Studiowałem JPA i natknąłem się na wiele nowych terminów, takich jak Entity, wytrwałość. Czytając, nie mogłem zrozumieć dokładnej definicji kontekstu trwałości .
Czy ktoś może to wyjaśnić prostymi, laickimi słowami? Co to ma wspólnego z danymi używanymi w @Entity
?
Na przykład uważam tę definicję za zbyt skomplikowaną, aby ją zrozumieć:
Kontekst trwałości to zestaw jednostek, tak że dla każdej trwałej tożsamości istnieje unikalne wystąpienie jednostki.
źródło
źródło
Zaczerpnięte z tej strony:
Oto krótka ściągawka ze świata JPA:
źródło
Trwałe kontekst reprezentuje podmioty, które posiadają dane i są kwalifikacje, aby być utrwalone w pewnym pamięci trwałej jak bazy danych. Po
commit
dokonaniu transakcji w ramach sesji, do której są dołączone te jednostki, Hibernate opróżnia trwały kontekst, a zmiany ( wstawianie / zapisywanie, aktualizowanie lub usuwanie ) w nich są utrwalane w pamięci trwałej.źródło
Zarówno
org.hibernate.Session
API, jak ijavax.persistence.EntityManager
API stanowią kontekst do radzenia sobie z trwałymi danymi.Pojęcie to nazywa się kontekstem trwałości . Trwałe dane mają stan związany zarówno z kontekstem trwałości, jak i bazową bazą danych.
źródło
„Zestaw trwałych instancji (jednostek) zarządzanych w danym momencie przez instancję menedżera jednostek” jest nazywany kontekstem trwałości.
Adnotacja JPA @Entity wskazuje na trwałą jednostkę.
Zobacz definicję JPA tutaj
źródło
Mówiąc prościej można powiedzieć, że Persistence Context to środowisko, w którym zarządza się encjami, tj. Synchronizuje „Entity” z bazą danych.
źródło
Chociaż @pritam kumar daje dobry przegląd, piąty punkt nie jest prawdziwy.
https://blogs.oracle.com/carolmcdonald/entry/jpa_caching
EntityManager i Hibernate Session JPA oferują rozszerzony kontekst trwałości.
źródło
Kontekst trwałości to środowisko lub pamięć podręczna, w którym instancje jednostek (które mogą przechowywać dane, a tym samym mogą być utrwalane w bazie danych) są zarządzane przez Entity Manager . Synchronizuje jednostkę z bazą danych. Wszystkie obiekty z adnotacją @Entity są w stanie bycia upartym. @Entity to nic innego jak klasa, która pomaga nam tworzyć obiekty w celu komunikowania się z bazą danych, a sposób, w jaki obiekty komunikują się przy użyciu metod, a dostawcą tych metod jest Entity Manager.
źródło