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 :

Probleme de suppression


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 193
    Par défaut Probleme de suppression
    Salut a tous,
    je dispose d' une table Composant, et une table Proprietes.
    La table Propriete a pour chaque tuple une FK vers un Composant (logique).

    Dans mon appli. java je me retrouve donc avec un set de Proprietes pour le Composant.

    Tout fonctionne nickel pour le SELECT mais je veux DELETE certains Composants et donc leurs Proprietes.

    Voilà comment je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void supprimeSauvegarde(String save) throws HibernateException {
            Session session = HibernateUtil.currentSession();
            session.beginTransaction();
            List<Composant> results = session.createQuery("from Composant WHERE sauvegarde ='"+save+"'").list();
            for (Composant c : results) {
                for (Object o : c.getProprietes())
                    session.delete(o);
                session.delete(c);
            }
            session.getTransaction().commit();
        }
    En gros, je select tous les composants dont j' ai besoin, je supprime les proprietes de celui ci et ensuite le composant.

    Mais une erreur se passe au moment du : commit();

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    Hibernate: select composant0_.idComp as idComp1_, composant0_.idTComp as idTComp1_, composant0_.label as label1_, composant0_.sauvegarde as sauvegarde1_, composant0_.posX as posX1_, composant0_.posY as posY1_ from Composant composant0_ where composant0_.sauvegarde='test'
    Hibernate: update Propriete set idComp=null where idComp=?
    13:17:34,410  WARN JDBCExceptionReporter:77 - SQL Error: 0, SQLState: null
    13:17:34,410 ERROR JDBCExceptionReporter:78 - failed batch
    13:17:34,415 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
    org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
            at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
            at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
            at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
            at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
            at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
            at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
            at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
            at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
            at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
            at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
            at simulator.hibernate.HibernateRequetes.supprimeSauvegarde(HibernateRequetes.java:75)
            at simulator.model.Outils$4.actionPerformed(Outils.java:143)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
            at java.awt.Component.processMouseEvent(Component.java:5488)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
            at java.awt.Component.processEvent(Component.java:5253)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3955)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1778)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Caused by: java.sql.BatchUpdateException: failed batch
            at org.hsqldb.jdbc.jdbcStatement.executeBatch(Unknown Source)
            at org.hsqldb.jdbc.jdbcPreparedStatement.executeBatch(Unknown Source)
            at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
            at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
            ... 34 more
    Exception in thread "AWT-EventQueue-0" org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
            at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
            at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
            at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
            at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
            at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
            at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
            at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
            at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
            at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
            at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
            at simulator.hibernate.HibernateRequetes.supprimeSauvegarde(HibernateRequetes.java:75)
            at simulator.model.Outils$4.actionPerformed(Outils.java:143)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
            at java.awt.Component.processMouseEvent(Component.java:5488)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
            at java.awt.Component.processEvent(Component.java:5253)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3955)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1778)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Caused by: java.sql.BatchUpdateException: failed batch
            at org.hsqldb.jdbc.jdbcStatement.executeBatch(Unknown Source)
            at org.hsqldb.jdbc.jdbcPreparedStatement.executeBatch(Unknown Source)
            at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
            at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
            ... 34 more
    Il me tape une erreur de null mais je vois pas pourquoi car les tables sont bien remplies...

    Merci de m'aider

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 193
    Par défaut
    En fait a premiere vue ca delete mais en mettant une erreur ...
    toujours au commit

Discussions similaires

  1. Probleme de suppression de fichier
    Par ythim dans le forum Langage
    Réponses: 6
    Dernier message: 10/07/2006, 07h40
  2. probleme de suppression apartir du fichier
    Par letoil dans le forum C
    Réponses: 3
    Dernier message: 05/05/2006, 00h02
  3. [VBA] Problem de suppression de composant
    Par jesus144 dans le forum IHM
    Réponses: 9
    Dernier message: 26/04/2006, 10h03
  4. [REDHAT] Problème de suppression avec dépendance
    Par byloute dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 21/04/2006, 18h19
  5. Réponses: 1
    Dernier message: 11/01/2006, 19h21

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