Hibernate: Session vs EntityManager

espresso

Mitglied
Hallo,
ich bin noch ungeübt in Hibernate und versuche gearde etwas in meine DB zu schreiben. Dabei ist mir aufgefallen, dass es wohl mehrere Möglichkeiten gibt, dies zu tun:

1. Mit einer Session
Java:
SessionFactory sessionFactory = InitSessionFactory.getInstance();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
 
session.save(subject);

transaction.commit();
session.close();
sessionFactory.close();

2. Mit einem EntityManager
Java:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("eventmanager");
EntityManager em = emf.createEntityManager();
        
EntityTransaction transaction = em.getTransaction();
transaction.begin();
        
em.merge(subject);
        
transaction.commit();
               
em.close();
emf.close();

Kann mir jemand erklären, worin der Unterschied besteht bzw. was ich in welchem Kontext verwenden muss?
Warum muss ich hier kein flush verwenden?

Danke und viele Grüße
espresso
 
Inhaltlich ist es wirklich genau dasselbe, oder? Nur andere Interfaces/Klassen. Aber hinter dem JPA-EntityManager verbirgt sich, wenn man Hibernate für JPA nutzt, die Hibernate-Session.
 

Neue Themen


Zurück
Oben