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

JPA Java Discussion :

CollectionOfElements - collection is not associated with any session


Sujet :

JPA Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 25
    Points : 23
    Points
    23
    Par défaut CollectionOfElements - collection is not associated with any session
    Bonjour,

    J'implémente une application qui vient se greffer sur une DB existante.

    J'ai une entité (mappée sur "table_A")qui doit contenir une map de champs venant d'une autre table ("table_B") (qui elle n'est pas mappée @entity).

    Pour faire le lien entre ces 2 tables, j'ai dans table_A:
    - un champ "code" (qui n'est pas l'id de l'objet mais qui est tout de même unique)
    - un champ "sanction"

    de l'autre côté (table_B):

    - le même code (qui n'est pas l'id dans la table)
    - la même sanction

    - le code langue
    - le libellé

    Un entregistrement dans table_B est unique sur:

    code, sanction, langue

    Ce que je souhaite avoir, c'est:

    Dans mon entité "A" (mappée sur table_A),
    une map<langue, libellé> dont les valeurs proviennent de table_B et qui correspondent au code et à la sanction de mon objet A.

    Voici mon mapping dans man classe :
    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
     
    @Entity
    @Table(name = "table_A")
    public class A implements Serializable
    {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "ID")
        private Long id;
     
        @Column(name = "codeA")
        private String codeA;
     
        @Column(name = "sanctionA")
        private String sanctionA;
     
    @CollectionOfElements(fetch = FetchType.EAGER)
        @JoinTable(name = "table_B", joinColumns =
        {
            @JoinColumn(name = "code", referencedColumnName="codeA"),
            @JoinColumn(name = "sanction", referencedColumnName="sanctionA")
        })
        @MapKey(columns =
        {
            @Column(name = "langue")
        })
        @Column(name = "libelle")
        private Map<String, String> mapTableBLabels;
    ...
    }
    Malheureusement, quand je tente de récupérer un object A de la DB, j'ai ceci:

    collection is not associated with any session; nested exception is org.hibernate.HibernateException: collection is not associated with any session
    Une idée ?

  2. #2
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Peux-tu poster le code qui génère l'exception?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    L'exception est levée sur le getJpaTemplate().find()

    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
     
       @Override
        public A getA(String sCode)
        {
            A objectA = null;
     
            if (sCode != null)
            {
                try
                {
                    List<A> listObjectsA = (List<A>) getJpaTemplate().find("from A objectA where objectA.code = ? ", sCode);
     
                    if (listObjectsA.size() > 0)
                    {
                        objectA = listObjectsA.get(0);
                    }
                }
                catch (Exception ex)
                {
                    m_logger.error(ex.getMessage());
                }
            }
            return objectA;
        }

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2011, 11h48
  2. different object with the same identifier was already associated with the session
    Par lextaz33 dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 02/03/2009, 14h36
  3. Réponses: 0
    Dernier message: 31/07/2007, 09h43
  4. Réponses: 1
    Dernier message: 11/05/2006, 22h05
  5. [MSDE] Not associated with a trusted connection...
    Par tiboleo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/06/2004, 15h08

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