Hibernate et les transactions
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:
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:
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