Bonjour

Je suis entrain de faire une mini auto formation en Hibernate, j'arrive à faire des opérations CAUD.

Par contre j'ai un souci avec la gestion des transactions, je n'arrive pas à desactiver l'autocommit sur la connexion. Le programme commit les mise à jours avant même que je ne fasse transaction.commit();

Le code Java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
// Récupération d'une session Hibernate
        Session s = HibernateUtils.getSession();
 
        // Début de la transaction
        Transaction t = s.beginTransaction();
 
        t.begin();
 
        // Création d'un objet Event
        Event e = new Event();
        e.setTitle("Titre de l'event 1");
        e.setDescription("Description de l'évènement 1");
        e.setBeginDate(new GregorianCalendar());
        e.setAllDay(false);
        //Cette instruction commit déjà les maj
        s.save(e);
 
        // J'aimerai que le commit se passe ici
        t.commit();
 
        // Fermeture de la session Hibernate
        s.close();
Le fichier Hibernate.cfg.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="">
  <!--  Paramètres de connexion à la base de données -->
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/pge_jpa_v1</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password"/>
  <!-- Comportement pour la conservation des tables -->
  <property name="hbm2ddl.auto">create</property>
  <property name="hibernate.hbm2ddl.auto">update</property>
  <property name="hibernate.connection.autocommit">false</property>
  <!-- Fichiers à mapper -->
  <mapping class="fr.mistra.pgejpav1.jpa.Event"/>
  <!-- Affiche les logs SQL 
        <property name="show_sql">true</property> 
        <property name="hibernate.format_sql">true</property> 
        <property name="use_sql_comments">true</property> -->
 </session-factory>
</hibernate-configuration>
Je travail avec une base de données MySql

Merci d'avance