IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

[Hibernate] Connection Transaction


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Par défaut [Hibernate] Connection Transaction
    Bonjour,

    J'utilise Hibernate avec une Base de données SQL Server 2005.

    Au travers d'un processus, je souhaite faire un backup d'une base de données.

    Le souci, c'est qu'il me fait une erreur :

    java.sql.SQLException: Impossible d'effectuer une sauvegarde ou une restauration dans une transaction.
    Donc ma question :

    Quand on ouvre une session avec Hibernate, il doit ouvrir implicement une transaction (N'est-ce pas ?!). Peut-on lui dire qu'il n'ouvre pas de Transaction ?


  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Par défaut
    Et bien c'est tout simple !!!



    Il suffit de préciser la Transaction (org.hibernate.Transaction) explicitement

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		Session sourceSession = PouSessionFactory.openSession();
    		Connection conSource = sourceSession.connection();
    		Transaction tx = null;
    Et aprés de faire un truc inutile du genre :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    [...]
    		try {
    
    		    
    tx = sourceSession.beginTransaction();
    		    tx.commit();
    
    			String sourceCatalog = conSource.getCatalog();
    
    			String targetCatalog = conTarget.getCatalog();
    			TargetSessionFactory.closeSession();
    
    			call = conSource.prepareCall(sqlBackup);
    
    			call.setString(1, repertoireBackup);
    			call.setString(2, sourceCatalog);
    			call.setString(3, targetCatalog);
    			call.setString(4, phase);
    			
    			call.registerOutParameter(5, java.sql.Types.INTEGER);
    			
    			call.execute();
    			
    			console.info("Execution Backup Database : " + call.getInt(5));
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			
    			try {
    				if (rs != null)
    					rs.close();
    
    				if (call != null)
    					call.close();
    				
    			} catch (SQLException e) {
    			}
    		}

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Sauf que le commit se fait en toute logique, à la fin de ton traitement.
    Tu peux aussi gérer le rollback de ta transaction en cas d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Spring + Hibernate + JBoss : Transaction AOP
    Par meryodev dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 03/06/2011, 23h02
  2. pbl Jboss Tools Strust hibernate connection imposible
    Par Philcmoi dans le forum Hibernate
    Réponses: 1
    Dernier message: 16/01/2010, 20h36
  3. [hibernate] connection à la base pas fermée
    Par <romain/> dans le forum Hibernate
    Réponses: 6
    Dernier message: 05/11/2009, 10h50
  4. [Framework] Challenge ! Spring + Hibernate = double transaction ?
    Par Invité dans le forum Spring
    Réponses: 2
    Dernier message: 22/10/2009, 10h19
  5. Problème : hibernate.connection.url jdbc:mysql
    Par doudou_angelus dans le forum Hibernate
    Réponses: 3
    Dernier message: 22/08/2007, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo