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 :

Méthode non transactionelle avec rollback


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut Méthode non transactionelle avec rollback
    Bonjour,

    Je pose la question sans grande conviction mais en espérant que qqn puisse me proposer une alternative.

    Je dois importer dans une base de données un grand nombre de données.

    J'ai tout d'abord commencer logiquement à faire une méthode transactionnelle, mais cette méthode prenant énormément de temps à se réaliser, j'ai décidé d'ouvrir et de fermer ma session à chaque insertion, et là le temps d'execution est divisé par 2.

    Mon problème est si une insertion se passe mal comment revenir à l'état de départ, ou à un état stable de la base de données.

    Merci

    PS:J'utilise PostGres

  2. #2
    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
    C'est à toi de découper tes méthodes transactionnelles selon tes besoins.
    Si une insertion se passe mal, tu dois annuler toutes les autres, ou seulement celle qui a planté ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    Le mieux serait de faire un rollback sur toutes mes minis transactions.

  4. #4
    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
    Je ne vois pas trop comment faire autrement qu'une seule transaction.

    Voir ce lien pour l'insertion par paquets.

    http://www.hibernate.org/hib_docs/v3..._single/#batch

    Fais tu des flush, clear de la session régulièrement comme dans la doc ?
    Je ne sais pas si ça rendra plus rapides tes traitements, mais à défaut, tu éviteras les out of memory

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Etrange ton histoire, car tu es au sein d'une seule transaction, avec une seule session active, donc le update, flush, clear sont inutiles.
    J'y avais pensé, mais ayant vu ça sur le forum, je me suis dit que ça ne servirait à rien pour ma méthode transactionnelle, n'y a t'il pas un moyen d'accélérer une méthode transactionnelle ?

    Après je pourrais l'utiliser dans ma méthode non transactionnelle pour l'accélérer, mais ça ne résolvera pas mon problème de rollback si une des insertions se passent mal.

    En tout cas, je vais essayer de travailler avec les paquets pour éviter les dégats dans ma base de données.

    Merci bcp !

  6. #6
    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
    Envoyé par fr1man
    Etrange ton histoire, car tu es au sein d'une seule transaction, avec une seule session active, donc le update, flush, clear sont inutiles.
    Ceci n'est pas valable pour de l'insertion en masse, car la session est susceptible d'"exploser".

Discussions similaires

  1. Une méthode @WS REST avec un PUT non fonctionnel
    Par geforce dans le forum REST
    Réponses: 0
    Dernier message: 27/10/2014, 15h08
  2. UpCasting non respecté avec une méthode surchargée
    Par Nicolas Dansel dans le forum Langage
    Réponses: 9
    Dernier message: 27/05/2009, 14h46
  3. [Affectation] Méthode des Hongrois avec une matrice non carrée
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 12/09/2007, 14h38
  4. Méthode d'affichage avec MFC
    Par Blobette dans le forum MFC
    Réponses: 2
    Dernier message: 09/03/2005, 16h48
  5. Réponses: 4
    Dernier message: 07/12/2002, 15h24

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