- ORM (Object-Relational Mapping) - koncepcja - rekordy z bazy danych widzimy jako obiekty w naszym języku programowania
- W Javie mamy przede wszystkim rozwiązanie JPA, które ma kilka implementacji, ale istnieją tekże alternatywy, w tym dość popularne MyBatis
- JPA, Jakarta Persistence API / wcześnej Java Persistence API, potocznie "Persistence" - standard Javy określający interfejs programistyczny: adnotacje @Entity itd., interfejs EntityManage, TypedQuery itd.
- Hibernate to jest jedna z kilku (ale najważniejsza) implementacja standardu JPA. Inną działającą implementacją jest EclipseLink, uzywany m.in. przez serwer Glassfish
- Hibernate powstał wcześniej niż standard JPA, dopiero później dostosowywał się do standardu. W efekcie istnieją dwa alternatywne sposoby korzystania z Hibernate: poprzez JPA (jakarta.persistence, a wcześniej javax.persistence) lub poprzez "Hibernate API" (org.hibernate)

https://www.baeldung.com/learn-jpa-hibernate

szczególnie polecam:
https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate

https://www.baeldung.com/jpa-hibernate-difference
