Hibernate est l’ORM le plus populaire dans l’écosystème Java qui implémente la spécification JPA

Hibernate est un ORM qui se présente sous forme de librairies Java que nous pouvons ajouter à notre projet

Et pour le moment, nous nous sommes qu’appuyer sur les configurations, les interfaces et les classes proposées par JPA mais Hibernate apporte également quelques compléments.
Configuration Hibernate
Avec JPA nous avions le fichier persistance.xml.
- lorsqu’on utilise Hibernate, nous pouvons garder ce fichier ou bien créer un fichier
resources/hibernate.cfg.xml. - mais nous pouvons également utiliser le fichier
resources/hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/Book</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.pool_size">1</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="book.hbm.xml" />
</session-factory>
</hibernate-configuration>Session et SessionFactory
Ressource
- Avec le standard JPA nous utilisions
EntityManageretEntityManagerFactory - Hibernate propose
SessionetSessionFactory
So, the
SessionFactoryis also a JPAEntityManagerFactory,SessionFactoryextends the JPAEntityManagerFactory

EntityManagerfournitpersist(),merge(),remove()etfind(Class<T>, id)Sessionfournitsave(),update(),delete()etget(Class<T>, id)
SessionFactory factory = new Configuration().configure("hibernate.cfg.xml")
.addAnnotatedClass(MyEntity.class)
.buildSessionFactory();
Session session = factory.openSession();
try {
session.beginTransaction();
MyEntity entity = new MyEntity();
entity.setName("Hibernate Example");
session.save(entity);
session.getTransaction().commit();
} finally {
session.close();
factory.close();
}