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 :

Illegal attempt to associate a collection with two open sessions


Sujet :

Hibernate Java

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut Illegal attempt to associate a collection with two open sessions
    hello,

    dans mon application j ai a plusieures reprises le message d erreur suivant
    Illegal attempt to associate a collection with two open sessions

    lorsque je fais appel a la méthode de mon DAO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	public void delete(DealerDb persistentInstance) {
    		ec.log("deleting DealerDb instance");
    		try {
    			getHibernateTemplate().delete(persistentInstance);
    			ec.log("delete successful");
    		} catch (HibernateException he) {
    			ec.handleError(he, ErrorLevel.ERROR);
    		} catch (DataAccessException dae) {
    			ec.handleError(dae, ErrorLevel.ERROR);
    		}
    	}
    voici le stack trace

    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
     
    Caused by: org.springframework.orm.hibernate3.HibernateSystemException: Illegal attempt to associate a collection with two open sessions; nested exception is org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
    	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)
    	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:413)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)
    	at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:761)
    	at org.springframework.orm.hibernate3.HibernateTemplate.delete(HibernateTemplate.java:757)
    	at com.mtsa.ebonus.core.db.salesforce.DealerDbDAO.delete(DealerDbDAO.java:41)
    	... 57 more
    Caused by: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
    	at org.hibernate.collection.AbstractPersistentCollection.setCurrentSession(AbstractPersistentCollection.java:410)
    	at org.hibernate.event.def.OnUpdateVisitor.processCollection(OnUpdateVisitor.java:40)
    	at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:101)
    	at org.hibernate.event.def.AbstractVisitor.processValue(AbstractVisitor.java:61)
    	at org.hibernate.event.def.AbstractVisitor.processEntityPropertyValues(AbstractVisitor.java:55)
    	at org.hibernate.event.def.AbstractVisitor.process(AbstractVisitor.java:123)
    	at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:72)
    	at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:761)
    	at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:739)
    	at org.springframework.orm.hibernate3.HibernateTemplate$25.doInHibernate(HibernateTemplate.java:767)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:365)
    	... 60 more
    quelqu un aurait il deja rencontré ce probleme et aurait une solution à me proposer ?

    merci

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Essaie peut etre de voir du cote de ta gestion des sessions avec Hibernate... apparemment, il voudrait dire ici que tu as deux sessions différentes qui tentent d'accéder à une même collection ... et ca il n'aime pas (question d'acces concurrentiel et d'intégrité des infos).

    Peut-etre que tu as une session ouverte avant la suppression et que en reouvre une seconde pour supprimer l'objet en question...

    N'hesite pas a proposer ou afficher le code de tes méthodes pour que l'on puisse mieux t'aider
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    il se trouve que lorsque le faisais un findByCriterions avec une liste de critères
    je ne fermait pas la session une fois le travail effectué

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/03/2009, 10h41
  2. Réponses: 2
    Dernier message: 26/02/2009, 09h07
  3. Réponses: 6
    Dernier message: 20/07/2007, 14h17
  4. Réponses: 3
    Dernier message: 28/02/2007, 16h21
  5. Réponses: 4
    Dernier message: 20/07/2006, 17h26

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